/* we can remove these excessive comments when the site goes live */
jQuery.noConflict();
// this is necessary when using jQuery with Prototype; all jQuery must be

function getCookie(c_name) {
   if (document.cookie.length > 0) {
      c_start = document.cookie.indexOf(c_name + "=");
      if (c_start != -1) {
         c_start = c_start + c_name.length + 1;
         c_end = document.cookie.indexOf(";", c_start);
         if (c_end == -1) c_end = document.cookie.length;
         return unescape(document.cookie.substring(c_start, c_end));
      }
   }
   return "";
}

function setCookie(c_name, value, expiredays) {
   var exdate = new Date();
   exdate.setDate(exdate.getDate() + expiredays);
   document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}

function increaseFontSize() {
   var max = 16;
   var p = document.getElementsByTagName('p');
   for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("px",""));
      } else {
         var s = 12;
      }
      if(s!=max) {
         s += 1;
      }
      p[i].style.fontSize = s+"px"
   }
}
function decreaseFontSize() {
   var min = 8;
   var p = document.getElementsByTagName('p');
   for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("px",""));
      } else {
         var s = 12;
      }
      if(s!=min) {
         s -= 1;
      }
      p[i].style.fontSize = s+"px"
   }   
}

function HideContent(d) {
	document.getElementById(d).style.display = "none";
}

function ShowContent(d) {
	document.getElementById(d).style.display = "block";
}

function ReverseDisplay(d) {
	if (document.getElementById(d).style.display = "none") {
		document.getElementById(d).style.display = "block";
	}
	else { document.getElementById(d).style.display = "none"; }
}

function swapimage(img_name, img_src, div_name, div_id) {
	if (document.images) {
		document[img_name].src = img_src
		for (looper = 1; looper < 4; looper++) {
			if (looper == div_id) {
				document.getElementById(div_name + looper).style.backgroundImage = "url(/images/static/" + div_name + "backon.jpg)";
				document.getElementById(div_name + looper).style.color = eval(div_name + 'texton');
				document.getElementById(div_name + looper).style.fontWeight = '900';
			}
			else {
				document.getElementById(div_name + looper).style.backgroundImage = "url(/images/static/" + div_name + "backoff.jpg)";
				document.getElementById(div_name + looper).style.color = eval(div_name + 'text');
				document.getElementById(div_name + looper).style.fontWeight = '400';
			}
		}
	}
}

function swaplayer(img_name, div_id, div_name, colour) {
	changingBG = true;
	layer_name = 'featurenav';
	if (div_name == null) {
		changingBG = false;
	}
	for (looper = 1; looper < 5; looper++) {
		if (looper == div_id) {
			document.getElementById(img_name + looper).style.display = 'block';
			if (changingBG == true) { document.getElementById(div_name + "nav" + looper).style.backgroundImage = "url(/images/static/" + div_name + colour + looper + "backon.jpg)"; }
		}
		else {
			document.getElementById(img_name + looper).style.display = 'none';
			if (changingBG == true) { document.getElementById(div_name + "nav" + looper).style.backgroundImage = "url(/images/static/" + div_name + colour + looper + "backoff.jpg)"; }
		}
		document.getElementById(layer_name + looper).style.padding = '0';
	}
	document.getElementById(layer_name + div_id).style.padding = '0 0 3px 0';
}
function swaplayerHPF(showID) {

   if (showID === "featureimage1") {
      document.getElementById("featureimage1").style.display = 'block'
   } else {
   document.getElementById("featureimage1").style.display = 'none'
   }




   if (showID === "featureimage2") {
      document.getElementById("featureimage2").style.display = 'block'
   } else {
      document.getElementById("featureimage2").style.display = 'none'
   }
}
function swaplayerHP(img_name, div_id, div_name, colour) {
	changingBG = true;
	layer_name = 'featurenav';
	if (div_name == null) {
		changingBG = false;
	}
	for (looper = 1; looper < 5; looper++) {
		//alert(div_name + "nav" + looper + "hp");
		if (looper == div_id) {
			document.getElementById(img_name + looper).style.display = 'block';
			if (changingBG == true) {
				document.getElementById("featurenav" + looper + "hp").style.backgroundImage = "url(/images/static/" + "homepage" + colour + looper + "backon.jpg)";
			}
		}
		else {
			document.getElementById(img_name + looper).style.display = 'none';
			if (changingBG == true) {
				//document.getElementById("featurenav" + looper + "hp").style.backgroundImage = "url(/images/static/" + "homepage" + colour + looper + "backoff.jpg)";
			}
			//alert(div_name + "nav" + looper + "hp\r\nfeaturenav" + looper + "hp");
		}
		document.getElementById(layer_name + looper + "hp").style.padding = '0';
	}
	document.getElementById(layer_name + div_id + "hp").style.padding = '0 0 3px 0';
}

function setHome() {
	theURL = document.location.href
	if (document.all) {
		document.body.style.behavior = 'url(#default#homepage)';
		document.body.setHomePage(theURL);

	}
	else if (window.sidebar) {
		if (window.netscape) {
			try {
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
			}
			catch (e) {
				alert("this action was aviod by your browser,if you want to enable,please enter about:config in your address line,and change the value of signed.applets.codebase_principal_support to true");
			}
		}
		var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
		prefs.setCharPref('browser.startup.homepage', theURL);
	}
	alert("Homepage changed");
}

function clearField(fieldID, origValue) {
	document.getElementById(fieldID).style.color = '#000';
	if (document.getElementById(fieldID).value == origValue) {
		document.getElementById(fieldID).value = '';
	}
	else {
		document.getElementById(fieldID).style.color = '#000';
	}
}

function fillField(fieldID, origValue) {
	if (document.getElementById(fieldID).value.length < 1) {
		document.getElementById(fieldID).value = origValue;
		document.getElementById(fieldID).style.color = '#999';
	}
}

function showSubMenu(name, div, id, site) {
	var id = id
	tabName = 'nav' + id;
	// wipe all menu on states first - assume 1-9 nav items change here if more or less
  	for (looper = 2; looper < sectionitems; looper++) {
tabNameall = 'nav' + looper;
 if (document.getElementById(tabNameall)) {
  	
  	
  	
	if (document.getElementById(tabName).className !== 'current') {
	if (tabNameall == tabName) {
		document.getElementById(tabName).className = 'selectSection';
	} else {
	document.getElementById(tabNameall).className = '';
	}
	
	}
	if (hidesubnavs) {
	    		document.getElementById(div).style.display = 'none';
	    		          }
	else {
	   if (id != sectionnosub1 && id != sectionnosub2 && id != sectionnosub3 && id != sectionnosub4 && id != sectionnosub5 && id != sectionnosub6 && id != sectionnosub7 && id != sectionnosub8 && document.domain != "www.kidsconfidential.co.uk")  {
    		document.getElementById(div).style.display = 'block';
    		ajaxy(name, 'subMenu', id, site);
    		return false;
    	}
		else {
    		document.getElementById(div).style.display = 'none';
    	}
}}
}}

function overMenu(div,id) {
	document.getElementById(div).style.display = 'block';
}

function hideLayer(div, outSub, id) {
	if (outSub == true) { overSubMenu == false }
	if (overSubMenu == false) {
		document.getElementById(div).style.display = 'none';
		return false;
	} else {
		document.getElementById(div).style.display = 'block';
	}
}

function HideContent(d) {
	document.getElementById(d).style.display = "none";
}

function ShowContent(d) {
	document.getElementById(d).style.display = "block";
}

function ReverseDisplay(d) {
	if (document.getElementById(d).style.display == "none") {
		document.getElementById(d).style.display = "block";
	}
	else { document.getElementById(d).style.display = "none"; }
}

// AJAXy submenu stuff
function ajaxy(url, target, id, site) {

	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (req != undefined) {
		url = site + "/submenu/" + url
		req.onreadystatechange = function() { ajaxyDone(url, target); };
		req.open("get", url, true);
		req.send("");
	}
}

function ajaxyDone(url, target) {
	if (req.readyState == 4) { // only if req is "loaded"
		if (req.status == 200) { // only if "OK"
			document.getElementById(target).innerHTML = req.responseText;
		} else {
			document.getElementById(target).innerHTML = " ajaxy Error:\n" + req.status + "\n" + req.statusText;
		}
	}
}

function oc(a) {
	var o = {};
	for (var i = 0; i < a.length; i++) {
		o[a[i]] = '';
	}
	return o;
}

function init() {
	overSubMenu = false;
	outSub = false;
	var dontDoSub = new Array("3", "12");
}

function showdets(whichLayer, dir) {

	var elem, vis;
	if (document.getElementById) // this is the way the standards work
		elem = document.getElementById(whichLayer);
	else if (document.all) // this is the way old msie versions work
		elem = document.all[whichLayer];
	else if (document.layers) // this is the way nn4 works
		elem = document.layers[whichLayer];
	vis = elem.style;

	if (vis.display == '' && elem.offsetWidth != undefined && elem.offsetHeight != undefined)
		vis.display = (elem.offsetWidth != 0 && elem.offsetHeight != 0) ? 'block' : 'none';
	vis.display = (vis.display == '' || vis.display == 'block') ? 'none' : 'block';
}

function revealAll() {
	for (i = 1; i <= 100; i = i + 1) {
		thisLayer = 'dets' + i;
		try {
			showdets(thisLayer, 'in');

		}
		catch (e) {

		}
	}
}

function ChecksignupForm()
{errorfound = false;
	if (document.signupform.firstname.value == "")
	{document.getElementById('firstname').innerHTML = 'firstname error';
		errorfound = true}
		else
			{document.getElementById('surname').innerHTML = '';}
	if (document.signupform.surname.value == "")
	{document.getElementById('surnameerror').innerHTML = 'surname error';
		errorfound = true}
		else
			{document.getElementById('nickname').innerHTML = '';}
	if (document.signupform.nickname.value == "")
	{document.getElementById('nicknameerror').innerHTML = 'nickname error';
		errorfound = true}
		else
			{document.getElementById('postcode').innerHTML = '';}
	if (document.signupform.postcode.value == "")
	{document.getElementById('postcodeerror').innerHTML = 'postcode error';
		errorfound = true}
		else
			{document.getElementById('passwordx').innerHTML = '';}
	if (document.signupform.passwordx.value.length < 2)
	{document.getElementById('passwordxerror').innerHTML = 'password error';
		errorfound = true}
		else
			{document.getElementById('email').innerHTML = '';}
	if (document.signupform.email.value != document.signupform.email2.value)
    {document.getElementById('email2error').innerHTML = 'emails dont match';
		errorfound = true}
		else
			{document.getElementById('email2').innerHTML = '';}
	if (document.signupform.email.value.indexOf ('@',0) == -1 || document.signupform.email.value.indexOf ('.',0) == -1)
    {document.getElementById('emailerror').innerHTML = ' email error';
		errorfound = true}
		else
			{document.getElementById('emailerror').innerHTML = '';}
  if (errorfound) 
    return false;
	   else
		  return true;
}

function Checkpasswordreminderform() {
	errorfound = false;
	
	if (document.passwordreminderform.email.value.indexOf ('@',0) == -1 || document.passwordreminderform.email.value.indexOf ('.',0) == -1)
    {document.getElementById('emailerror').innerHTML = ' email error';
		errorfound = true}
		else
			{document.getElementById('emailerror').innerHTML = '';}
  if (errorfound) 
    return false;
	   else
		  return true;
}



function makeContentBigger() {
	document.getElementById('articletable').style.fontSize = '150%';
}

function makeContentSmaller() {
	document.getElementById('theArticleHolder').style.fontSize='75%';
}

function Checkuserdetailsform() {
{errorfound = false;
	if (document.userdetailsform.firstname.value == "")
	{document.getElementById('firstnameerror').innerHTML = 'firstname error';
		errorfound = true}
		else
			{document.getElementById('firstnameerror').innerHTML = '';}
	if (document.userdetailsform.surname.value == "")
	{document.getElementById('surnameerror').innerHTML = 'surname error';
		errorfound = true}
		else
			{document.getElementById('surnameerror').innerHTML = '';}
	if (document.userdetailsform.nickname.value == "")
	{document.getElementById('nicknameerror').innerHTML = 'nickname error';
		errorfound = true}
		else
			{document.getElementById('nicknameerror').innerHTML = '';}
	if (document.userdetailsform.postcode.value == "")
	{document.getElementById('postcodeerror').innerHTML = 'postcode error';
		errorfound = true}
		else
			{document.getElementById('postcodeerror').innerHTML = '';}
	if (document.userdetailsform.passwordx.value.length < 2)
	{document.getElementById('passwordxerror').innerHTML = 'password error';
		errorfound = true}
		else
			{document.getElementById('passwordxerror').innerHTML = '';}
	if (document.userdetailsform.email.value.indexOf ('@',0) == -1 || document.userdetailsform.email.value.indexOf ('.',0) == -1)
    {document.getElementById('emailerror').innerHTML = ' email error';
		errorfound = true}
		else
			{document.getElementById('emailerror').innerHTML = '';}
  if (errorfound) 
    return false;
	   else
		  return true;
}
}

function pause(seconds) {
	var milliseconds = seconds * 100;
	var dt = new Date();
	while ((new Date()) - dt <= milliseconds) { /* Do nothing */ }
}

/* jQuery stuff for signup, edit details, etc. */

jQuery(function ($) {

   $("#login_username_field").val("email address");
   $("#login_password_field").val("password");

   // some triggers
   $("a#rantsignup, a#compsignup").click(function () {
      $("a#show_signup").click();
   });

   $("a#rantlogin").click(function () {
      alert("Enter your email address and password in the fields provided at the top of the page.");
   });

   $("form#loginform").submit(function () {
      sendloginform(document.getElementById('loginform'), 'mainheader_top_left');
      return false;
   });

   // when a user clicks on the sign up link ...
   $("a#show_signup").click(function () {
      // load the sign up form into the ajax box
      $("#Main-Ajax-box").load("/ajaxwrapper.asp?action=GetSignupForm", [], function () {
         /* this function is called once the sign up form has been loaded.
         it finds the close box link and applies a function to it which
         hides the ajax box when the button is clicked */
         $("#close_ajax").click(function () {
            $("#Main-Ajax-box").hide();
         });
         // let's make the DOB submission containers act nice
         $("[name=dobdd],[name=dobmm],[name=dobyyyy]").click(function () {
            if ($(this).val() === "DD" || $(this).val() === "MM" || $(this).val() === "YYYY") {
               $(this).val("");
            }
         });
         // also we add the form submit stuff

         $("img#submitx").click(function () {
            var submit = true;
            var additional_info = "";
            // check not empty
            $('input.formfield').removeClass('redo').not("[name='workpostcode']").each(function () {
               if ($(this).val() === "") {
                  $(this).addClass("redo");
                  additional_info += "\n * No value for " + $(this).attr("title");
                  submit = false;
               }
            }).end().filter("[name='dobdd'],[name='dobmm'],[name='dobyyyy']").each(function () {
               if ($(this).val().match(/^[0-9]+$/) === null) {
                  $(this).addClass('redo');
                  submit = false;
                  additional_info += "\n * An incompatible number for " + $(this).attr("title");
               }

            });

            var select_title = $('#title');

            if (select_title.attr('selectedIndex') > 0) {
               select_title.removeClass('redo');
            } else {
               select_title.addClass('redo');
               additional_info += '\n * Title';
               submit = false;
            }


            var emr = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
            if (!emr.test($("input[name=email]").val())) {
               $("input[name=email]").addClass('redo');
               additional_info += "\n * Email Address is not valid.";
               submit = false;
            }

            if ($("input[name=email]").val() !== '' && $("input[name=email]").val() !== $("input[name=email2]").val()) {
               $("input[name=email],input[name=email2]").addClass('redo');
               additional_info += '\n * Emails provided do not match.';
            }

            if (submit) {
               sendajaxformwithdiv(document.getElementById('signupform'));
            } else {
               alert('You have not filled in all the required fields.' + additional_info);
            }

         }); // show the form
      }).toggle();
      return false;
   });

   // much of this is repeating the above ... would be nice to compress them when
   // i have time
   $("#details").click(function () {
      $("#Main-Ajax-box")
			.load("/ajaxwrapper.asp?action=GetMyDetails", [], function () {
			   $("div.protectedchange").hide();
			   $("#editprotected").click(function () {
			      $("div.protectedchange").toggle();
			   });
			   $("#close_ajax").click(function () {
			      $("#Main-Ajax-box").hide();
			   });
			   $("[name=dobdd],[name=dobmm],[name=dobyyyy]").click(function () {
			      if ($(this).val() == "DD" || $(this).val() == "MM" || $(this).val() == "YYYY") {
			         $(this).val("");
			      }
			   });
			   $("img#submitx").click(function () {
			      var submit = true;
			      var additional_info = '';
			      $('input.formfield').removeClass('redo')
						.not('[name=workpostcode]').each(function () {
						   if ($(this).val() == '') {
						      $(this).addClass('redo');
						      submit = false;
						   }
						}).end()
					.filter("[name=dobdd],[name=dobmm],[name=dobyyyy]").each(function () {
					   if ($(this).val().match(!/^[0-9]+$/)) {
					      $(this).addClass('redo');
					      submit = false;
					   }
					});
			      if ($("#editprotected").is(":checked")) {
			         // check the confirm email / confirm password

			         var emr = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
			         if (!emr.test($("input[name=email1]").val())) {
			            $("input[name=email1]").addClass('redo');
			            additional_info += "\n * The new e-mail addresses you provided doesn't appear to be valid.";
			            submit = false;
			         }

			         if ($("input[name=email1]").val() != $("input[name=email2]").val()) {
			            $("input[name=email1],input[name=email2]").addClass('redo');
			            additional_info += "\n * The new e-mail addresses you provided did not match."
			            submit = false;
			         }
			         if ($("input[name=newpw1]").val() != $("input[name=newpw2]").val()) {
			            $("input[name=newpw1],input[name=newpw2]").addClass('redo');
			            additional_info += "\n * The new passwords you provided did not match."
			            submit = false;
			         }
			      }
			      if (submit) {
			         sendajaxformwithdiv(document.getElementById('userdetailsform'));
			      } else {
			         alert('You have not filled in all the required fields.' + additional_info);
			      }
			   });
			})
			.toggle();
   });
   return false;
});
