<!--
// new script library for the JBI site

if (self.location != top.location) { top.location = self.location; }
if (parent.frames.length > 0) { parent.location.href = self.document.location; }

function init() {
	// do all the things that need doing when the page loads
}

/////// macromedia functions ////////////
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

/////// general library functions ////////////
// function add_commas()
// add commas to a number, and returns a string
function add_commas(thenumber) {
	thenumber += '';
	x = thenumber.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

// function find_radio_value()
// find checked value of any radio group
// under development
function find_radio_value(groupname) {
	var radiogroup = document.getElementById(groupname);
	var radiovalue;
	
	for (i=0; i < radiogroup.length; i++) {
		if (groupname[i].checked) {
			radiovalue = groupname[i].value;
		}
	}
	
	return radiovalue;
}


////// Popup Windows //////////
// SE friendly popup windows
var newWindow = null;
function closeWin() {
	if (newWindow != null){
		if(!newWindow.closed)
			newWindow.close();
	}
}
function pop_win(url, type, strWidth, strHeight){	
	closeWin();	
	var tools;
	if (type == 'extSite') { // pass nulls in function call
		tools = '';
	}	
	else if (type == 'pacesetters'){ // pass nulls in function call
		strWidth = 700;
		strHeight = 600;
		tools = 'resizable=yes,toolbar=no,location=no,scrollbars=yes,menubar=no,width='+strWidth+',height='+strHeight+',top=50,left=30';
	}	
	else if (type == 'logomanager'){ // pass nulls in function call
		//strWidth = 350;
		//strHeight = 120;
		tools = 'resizable=yes,toolbar=no,location=no,scrollbars=yes,menubar=no,width='+strWidth+',height='+strHeight+',top=100,left=100';
	}	
	else if (type == 'custom'){
		strWidth += 20;
		strHeight += 30;
		tools = 'resizable=yes,toolbar=no,location=no,scrollbars=no,menubar=no,width='+strWidth+',height='+strHeight+',top=30,left=10';
	}
	else if(type == 'relatedlinks'){
	  tools = '';
	}
	else {
	  tools = '';
	}
	newWindow = window.open(url, 'newWindow', tools);
	newWindow.focus();
}

////// new AJAX functions /////////

// Function to create an XMLHttp Object.
function createAjaxObject() {	
	var ajaxObject = false;	
	if (window.XMLHttpRequest) {
		ajaxObject = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		ajaxObject = new ActiveXObject("Microsoft.XMLHTTP");
		// change if (window.ActiveXObject) to try/catch from below
	}
	return ajaxObject;
}

// function to process a simple XMLHttpRequest (one target element)
// recieves server side page, target element, get or post method, post string if post method
function processajax_simple(serverPage, targetElement, getOrPost, postStr) {
	var ajaxObject = createAjaxObject();
	var targetElement = document.getElementById(targetElement);
	
	if (ajaxObject) {
		// if get method
		if (getOrPost == 'get'){
			ajaxObject.open('GET', serverPage);
			ajaxObject.onreadystatechange = function() {
				if (ajaxObject.readyState == 1 || ajaxObject.readyState == 2 || ajaxObject.readyState == 3) {
					targetElement.innerHTML = 'Checking....';
				}
				if (ajaxObject.readyState == 4 && ajaxObject.status == 200) { // split this depending on status
					targetElement.innerHTML = ajaxObject.responseText;
				}
			}
			ajaxObject.send(null);
		} // end if get method
		// if post method
		else {
			ajaxObject.open('POST', serverPage, true);
			ajaxObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
			ajaxObject.onreadystatechange = function() {
				if (ajaxObject.readyState == 4 && ajaxObject.status == 200) {
					targetElement.innerHTML = ajaxObject.responseText;
				}
			}
			ajaxObject.send(postStr);
		} // end if post method	
	} // end if (ajaxObject)
	
	else {
		// targetElement.innerHTML = 'Cannot Create AJAX Object';
	}
	
} // end function processajax

////// old AJAX functions /////////
// check preferred user name is available
// var query_string = "?user_name=" + userName;
function check_user_name(user_name, target_id, check_for) {
	var ajaxObject = createAjaxObject();
	if (ajaxObject) {
		var obj = document.getElementById(target_id);
		obj.innerHTML = "...";
		if (check_for == 'sumari_reg') {
			ajaxObject.open('GET', '../include/ajax/check_user_authentication.php?user_name=' + user_name);
		}
		else if (check_for == 'advanced_user_reg') {
			ajaxObject.open('GET', '../include/ajax/check_user_advanced.php?user_name=' + user_name);
		} 
		else if (check_for == 'rapid_reg') {
			ajaxObject.open('GET', '../include/ajax/check_user_RAPid.php?user_name=' + user_name);
		}
		ajaxObject.onreadystatechange = function() {
			if (ajaxObject.readyState == 4 && ajaxObject.status == 200) {
				obj.innerHTML = ajaxObject.responseText;
			}
		}
		ajaxObject.send(null);
	}
	// else alert, you don't have AJAX capability
}

////////  form validation and field manipulation ////////

// enable and focus a specified text field
function enable_field(field_name) {
	var field_to_enable = document.getElementById(field_name);
	field_to_enable.disabled=false;
	field_to_enable.focus();
}

// disable and clear a specified text field
function disable_clear_field(field_name) {
	var field_to_disable = document.getElementById(field_name);
	field_to_disable.disabled=true;
	field_to_disable.value='';
}

// function change_field_value()
// changes value of a form field
function change_field_value(field_name, field_value) {
	var field_2_change = document.getElementById(field_name);
	field_2_change.value = field_value;
}

// compare field values
// under development
function compare_values(field_1, field_2, equality, err_message) {
	//var field_1 = document.getElementById(field1);
	//var field_2 = document.getElementById(field2);
	var value_1 = document.getElementById(field_1).value;
	var value_2 = document.getElementById(field_2).value;
	
	if (equality == 'not_equal') {
		if (value_1 != field_2) { 
			alert (err_message) 
		} 
	}
	
	if (equality == 'equal') {
		if (value_1 == field_2) { 
			alert ('The email addresses do not match. Please re-enter.') 
		} 
	}
} 

// dw extension function
// replace with AJAX inline validation including email address mx record validation
function YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}

////////  Membership Section ////////

// function calc_memb_rate()
// calculate and change displayed pricing during corporate member subscription process
function calc_memb_rate() {
	
	var region = document.getElementById('region_name').value;
	
	var categorylist = document.getElementById('membership_category');
	var category = categorylist[categorylist.selectedIndex].value;
	
	var level = document.getElementById('selected_level').value;
	
	var pricingcategory = category + '_' + level;
	var baseprice = parseInt(corporate[region][pricingcategory]);
	//alert(region + ' - ' + pricingcategory + ' - ' + baseprice);
		
	var numaddsites = parseInt(document.getElementById('additional_sites').value);
	
	var price_addsite_field = 'price_addsite_' + level;
	var addsiteprice = parseInt(document.getElementById(price_addsite_field).value);
	//alert(price_addsite_field + ' - ' + addsiteprice);
	
	var current_total = 0;
	current_total = (baseprice + (numaddsites * addsiteprice));
	
	var current_amount_container = document.getElementById('current_amount');
	var f_current_total = add_commas(current_total);
	current_amount_container.value = f_current_total;
}

// function change_displayed_pricing()
// recieves regionprices[region] array as region
// change displayed region and respective pricing in corporate info page
// also appends selected region parameters to subscribe link query string
// subscribe.php?type=corporate becomes subscribe.php?type=corporate&amp;region=region
function change_corporate_pricing(region) {
	// change displayed region name
	var selected_region_name = document.getElementById('selected_region_name');
	selected_region_name.innerHTML = region;
	// change value in search string of link to subscribe page
	var corpsubscribelink = document.getElementById('corpsubscribe');
	corpsubscribelink.href = 'subscribe.php?type=corporate&region=' + region;
	// change displayed values in pricing table
	for (i in region) {
		// (var i = 0; i < region.length; i++ )was not recognising region array length (cos associative not available in js)
		// was showing different lengths for each region array passed
	}
	//alert(region.length);
	
	// temporary workaround, should be created using for loop above
	var small_platinum_container = document.getElementById('small_platinum');
	var small_gold_container = document.getElementById('small_gold');
	var standard_platinum_container = document.getElementById('standard_platinum');
	var standard_gold_container = document.getElementById('standard_gold');
	var large_platinum_container = document.getElementById('large_platinum');
	var large_gold_container = document.getElementById('large_gold');
	var additional_site_platinum_container = document.getElementById('additional_site_platinum');
	var additional_site_gold_container = document.getElementById('additional_site_gold');
	
	small_platinum_container.innerHTML = regionprices[region]['small_platinum'];
	small_gold_container.innerHTML = regionprices[region]['small_gold'];	
	standard_platinum_container.innerHTML = regionprices[region]['standard_platinum'];
	standard_gold_container.innerHTML = regionprices[region]['standard_gold'];	
	large_platinum_container.innerHTML = regionprices[region]['large_platinum'];
	large_gold_container.innerHTML = regionprices[region]['large_gold'];	
	additional_site_platinum_container.innerHTML = regionprices[region]['additional_site_platinum'];
	additional_site_gold_container.innerHTML = regionprices[region]['additional_site_gold'];
}


////////  Other Functions ////////

/*
function to find checked value of any checkbox group
if (document.forms[0].checkbox.checked) {
	user_input = document.forms[0].checkbox.name
}
*/

// print function (very basic old one from original site - find a better one)
function DoPrint() {
	if (window.print) {
		window.print();
	}
}


var ie4 = false; if(document.all) { ie4 = true; }
function getObject(id) { if (ie4) { return document.all[id]; } else { return document.getElementById(id); } }
function toggle(link, divId) { var lText = link.innerHTML; var d = getObject(divId);
 if (lText == '+') { link.innerHTML = '-'; d.style.display = 'block'; }
 else { link.innerHTML = '+'; d.style.display = 'none'; } }


//-->