/*	==============================================================
	
	Group of commonly used javascript functions

============================================================	*/
function sureCheck(message,newlocation)
	{
		
		if(confirm(message))
		{
			if(newlocation!="")
			{
				location.href = newlocation;
			}
			else
			{
				return true;
			}
		}
		else
		{
			return false; 
		}
	}


function findAndCheckInputForValue(formName, checkValue){
	
	thisForm = document.getElementById(formName);
	
	for(e=0; e<thisForm.elements.length - 1; e++){
	
		if(thisForm.elements[e].type=="text"){
		
			if(thisForm.elements[e].value==checkValue){
				
				alert("One of the samples has a quantity of " + checkValue +" , please edit and retry.");
				return false;  
			}
		
		}
	
	}
	
	return true;
	
}

function checkForm(thisform){
	var rfields = thisform.required_fields.value.split(",");
	var rnames = thisform.required_names.value.split(",");
	var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/; 
	for(i=0;i<rfields.length;i++){
		if(!thisform[rfields[i]].disabled){ //only check the field if it is NOT disabled
			thisvalue = thisform[rfields[i]].value;
			if(thisvalue == ""){
				alert("'" + rnames[i] + "' is a required field.");
				return false;
			}else if(rfields[i].toLowerCase().indexOf("email")!=-1 && !re.test(thisvalue)){
				alert("The '" + rnames[i] + "' field should be a valid email address.");
				return false;
			}
		}
	}
	return true;
}

/* 	Set Mode function
	This is used by the bulkmailer front-end and swaps the fm_mode
	depending on a users input */
function bulkmailer_enablefields(){
count_form_fields = document.forms['mailinglist'].length;
	for(var i=0; i<count_form_fields; i++){
		if(document.forms['mailinglist'][i].type=="text"){
			if(document.forms['mailinglist'][i].disabled="disabled"){
				document.forms['mailinglist'][i].disabled="";
			}
			
			document.forms['mailinglist'][i].style.backgroundColor="white";
		}
	}	
	
	return true;
}

function setMode(thisMode){
	
	// Get the objects
	currentMode = document.getElementById('fm_mode');
	doDelete = document.getElementById('fm_delete');
	modeToggle = document.getElementById('fm_mode_toggle');
	
	// Set up colours
	formDisabled = "#e6e6e6";
	
	if(thisMode=="subscribe"){
		// We can set the mode to subscribe and ignore the checkbox
		currentMode.value="subscribe";

	} else if (thisMode=="unsubscribe") {
		// Check the checkbox
		if(doDelete.checked==false){
			// Set the mode to unsubscribe
			currentMode.value="unsubscribe";
		} else if (doDelete.checked==true){
			// Set the mode to unsubscribe_and_delete
			currentMode.value="unsubscribe_and_delete";
		}
	} else if (thisMode=="unsubscribe_and_delete") {
		// Set the mode to unsubscribe or subscribe as required
		if(modeToggle.checked==true){
			// this is subscribe
			currentMode.value="subscribe";
		} else if(modeToggle.checked==false && currentMode.value=="unsubscribe"){
			currentMode.value="unsubscribe_and_delete";
		} else if(modeToggle.checked==false && currentMode.value=="unsubscribe_and_delete"){
			currentMode.value="unsubscribe";
		}
	
	} else if (thisMode=="show_user_details"){
		currentMode.value="show_user_details";
	}
	
	// Check which mode we are in and set up the form
	if(currentMode.value=='subscribe'){
		// Loop through all fields and set them back to active
		bulkmailer_enablefields();
		
		// Turn of the code box
		document.getElementById('fm_pswd').disabled='disabled';
		document.getElementById('fm_pswd').style.backgroundColor=formDisabled;
		
	} else if (currentMode.value=='unsubscribe' || currentMode.value=='unsubscribe_and_delete'){
		// Turn off the relevent form fields
		document.getElementById('fm_title').disabled="disabled";
		document.getElementById('fm_title').style.backgroundColor=formDisabled;
		
		document.getElementById('fm_firstname').disabled="disabled";
		document.getElementById('fm_firstname').style.backgroundColor=formDisabled;
		
		document.getElementById('fm_surname').disabled="disabled";
		document.getElementById('fm_surname').style.backgroundColor=formDisabled;
		
		// Turn on form fields
		document.getElementById('fm_pswd').disabled="";
	
	} else if (currentMode.value=='show_user_details'){
		// Turn on all form fields
		bulkmailer_enablefields();
		
		// turn off
		document.getElementById('fm_title').disabled="disabled";
		document.getElementById('fm_title').style.backgroundColor=formDisabled;
		
		document.getElementById('fm_firstname').disabled="disabled";
		document.getElementById('fm_firstname').style.backgroundColor=formDisabled;
		
		document.getElementById('fm_surname').disabled="disabled";
		document.getElementById('fm_surname').style.backgroundColor=formDisabled;
	}
	
}
// Set Mode End

//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

// Function to get todays date
function getCalendarDate()
{
	var months = new Array(13);
	months[0]  = "January";
	months[1]  = "February";
	months[2]  = "March";
	months[3]  = "April";
	months[4]  = "May";
	months[5]  = "June";
	months[6]  = "July";
	months[7]  = "August";
	months[8]  = "September";
	months[9]  = "October";
	months[10] = "November";
	months[11] = "December";
	
	var now         = new Date();
	var monthnumber = now.getMonth();
	var monthname   = months[monthnumber];
	var monthday    = now.getDate();
	var year        = now.getYear();
	
	if(year < 2000) { year = year + 1900; }
	
	var dateString = monthname + " " + monthday + " " + year;
	return dateString;
}
// End getCalenderDate function

// Check form

function checkForm(thisform){
	var rfields = thisform.required_fields.value.split(",");
	var rnames = thisform.required_names.value.split(",");
	var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/; 
	for(i=0;i<rfields.length;i++){
		if(!thisform[rfields[i]].disabled){ //only check the field if it is NOT disabled
			thisvalue = thisform[rfields[i]].value;
			if(thisvalue == ""){
				alert("'" + rnames[i] + "' is a required field.");
				return false;
			}else if(rfields[i].toLowerCase().indexOf("email")!=-1 && !re.test(thisvalue)){
				alert("The '" + rnames[i] + "' field should be a valid email address.");
				return false;
			}
		}
	}
	return true;
}

// Swap images
function SwapImage1(new_image, image_id) {
		  document.getElementById(image_id).src=new_image;
}
function SwapImage1Back(original_image, image_id) {
  document.getElementById(image_id).src=original_image
}

/*  ShowHide 
	This function show / hides and div. Used on the contacts page */
function showHide(divname){

	if(!window.opendiv){
		window.opendiv="n";
	}
	
	if(window.opendiv=="n"){
		thisdiv=document.getElementById(divname);
		thisdiv.style.display="inline";
		window.opendiv=divname;
	} else if (window.opendiv==divname){
		// close the opendiv
		closediv=document.getElementById(window.opendiv);
		closediv.style.display="none";
		
		window.opendiv="n";
	} else {
		// close the opendiv
		closediv=document.getElementById(window.opendiv);
		closediv.style.display="none";
		
		// open the new div
		thisdiv=document.getElementById(divname);
		thisdiv.style.display="inline";
		window.opendiv=divname;
	}
}

/*  ShowHide 
	This function show / hides and div. Used on the samples page */
function showHideSamples(divname, divtoclose){
	
	if(!window.opendiv){
		window.opendiv="n";
	}
	
	if(window.opendiv=="n"){
		thisdiv=document.getElementById(divname);
		thisdiv.className="samples-product-container-open";
		window.opendiv=divname;
	} else if (window.opendiv==divname){
		// close the opendiv
		closediv=document.getElementById(window.opendiv);
		closediv.className="samples-product-container-closed";
		
		window.opendiv="n";
	} else {
		// close the opendiv
		closediv=document.getElementById(window.opendiv);
		closediv.className="samples-product-container-closed";
		
		// open the new div
		thisdiv=document.getElementById(divname);
		thisdiv.className="samples-product-container-open";
		window.opendiv=divname;
	}
	
	if(divtoclose!=""){
		thisclosingdiv=document.getElementById(divtoclose);
		thisclosingdiv.className="samples_category_container_closed";
	}
}

// Show/hide the main menu
function showHideMenu(buttonclicked,menuname,level){
	/* Set up global variables */
	if(!window.activeTopButton){window.activeTopButton="n";}
	if(!window.activeSubButton){window.activeSubButton="n";}
	if(!window.menuName){window.menuName="n";}
	
	var thisButton=document.getElementById(buttonclicked);
	
	var thisMenuName=document.getElementById(menuname);
	var thisLevel=document.getElementById(level);

	if(window.menuName=="n" && window.activeSubButton=="n" && window.activeTopButton=="n"){
	
		// Never been clicked yet	
		if(level!="link"){
			thisMenuName.style.display="inline";
		}
		
		// highlight the button
		thisButton.className="top-level-button-active";
		
		// remove the highlight from any submenu button that maybe open
		if(window.activeTopButton=="n"){
			window.activeTopButton="n";
		}
		
		// If the submenu is open, close it
		if(window.menuName=="n"){
			window.menuName="n";
		}
		// Set the activeTopButton var
		window.activeTopButton=buttonclicked;
		
		// Set the menuName var with open menu name
		window.menuName=menuname;
	
	} else if(window.menuName==menuname && window.activeTopButton!="n"){
		// Clicking already opened menu
		// So close menu submenus
		if(window.activeSubButton!="n"){
			removeHighlight=document.getElementById(window.activeSubButton);
			removeHighlight.className="sub-level-button";
			window.activeSubButton="n";
		}
		
		// Close top level
		closeThisMenu=document.getElementById(menuname);
		closeThisMenu.style.display="none";
		
		// highlight the button
		thisButton.className="top-level-button";
		
		// Set the activeTopButton var
		//window.activeTopButton=buttonclicked;
		window.activeTopButton="n";
		// Set the menuName var back to n
		window.menuName="n";
		
	} else if(level!="sub" && window.activeTopButton!=buttonclicked){
	
		/* 	Another top level category has been clicked
			whilst a different one is still open */
			
			// Remove highlight from any subcategory that maybe open
			if(window.activeSubButton!="n"){
				removeHighlight=document.getElementById(window.activeSubButton);
				
				// Check to see if the tab is an extended version
				curHighButtonName = window.activeSubButton;
				curHighButton = document.getElementById(curHighButtonName);
			
				if(curHighButton.className=="extended-sub-level-button-active"){
					removeHighlight.className="extended-sub-level-button-active";
				} else {
					removeHighlight.className="sub-level-button-active";
				}
			}
			
			// Now close the sub menu down	
			if(level!="link"){
				if(document.getElementById(window.menuName)!=undefined){
					closeThisSubMenu=document.getElementById(window.menuName);
					closeThisSubMenu.style.display="none";
				}
			}
			
			// Remove Highlight from toplevel button
			removeHighlightTopButton=document.getElementById(window.activeTopButton);
			removeHighlightTopButton.className="top-level-button";
			
			// Highlight the new button
			addHighlightTopButton=document.getElementById(buttonclicked);
			addHighlightTopButton.className="top-level-button-active";
			
			// Open the new sub-menu
			if(level!="link"){
				openThisMenu=document.getElementById(menuname);
				openThisMenu.style.display="inline";
			}
			
			// Set the activeTopButton var
			window.activeTopButton=buttonclicked;
			
			// Set the menuName var back to n
			window.menuName=menuname;
			
			// Set the activeSubButton var back to nothing
			window.activeSubButton="n";
		
	} else if (menuname=="" && level=="sub" && window.activeSubButton=="n"){
		// Set the sub-category button to active
		if(thisButton.innerText.length>16){
			thisButton.className="extended-sub-level-button-active";
		} else {
			thisButton.className="sub-level-button-active";
		}
		// Set the var to the button name
		window.activeSubButton=buttonclicked;
		
	} else if (menuname=="" && level=="sub" && window.activeSubButton!="n") {

		// Another sub-menu button has been clicked
		// Remove hightlight from previous button
		removeHighlight=document.getElementById(window.activeSubButton);
		
		if(removeHighlight.innerText.length>16){
			removeHighlight.className="extended-sub-level-button";
		} else {
			removeHighlight.className="sub-level-button";
		}
		// Highlight new button
		addHighlight=document.getElementById(buttonclicked);
		
		if(addHighlight.innerText.length>16){
			addHighlight.className="extended-sub-level-button-active";
		} else {
			addHighlight.className="sub-level-button-active";
		}
		
		// Swap menu var
		window.activeSubButton=buttonclicked;
		
	}
}