/*
	modify prices for subs here in calcSubs( )


    06.06.06    prices from old site: modified OrderFOrm.htm
    07.07.06    additional code for ebooks2/logins2 (maximising)
	10.01.08	checkform to ensure selection of mail list option
	13.05.08	added get_radio_value() to enable the above
	02.06.08	clean up radio/check etc for order cookies; remove redundant code
	17.06.08	submitit	deal with the two buttonson cart
				checkform	validate login/pw/pw2 entries (allow for others) 
				
				
*/

//	cart code...


function submitit( type )
{
//alert( "submit : " + type );//+ "dont check = " + dontcheck );
	
	if	(	!dontcheckmail 
		&&	!document.paypalform.mailme[0].checked 
		&&	!document.paypalform.mailme[1].checked )
	{
		alert( 'please select your mail preference - NO if you are already on my list' );
		return false;
	}
	
	if( type == "printorder" )
		document.paypalform.action = "index.php?page=cart/cart.php&getorderdetails=true&printorder=true";
	if( type == "doinvoice" )
		document.paypalform.action = "index.php?page=cart/cart.php&getorderdetails=true&doinvoice=true";
	if( type == "docardpay" )
		document.paypalform.action = "index.php?page=cart/cart.php&getorderdetails=true&docardpay=true";

//alert( "action set to " + document.paypalform.action );

	document.forms.paypalform.submit();

}


function updatemailme( state )
{
	setCookie( 'mailme', state, 1, '', '', '' );
}

function readmailme()
{
//alert( "cookie is " + getCookie( 'mailme' ) );
   	return getCookie( 'mailme' ) ;

}

var dontcheckmail;

//	var element = document.theForm.OrgType;

	
    function OpenPrintFrm()
    {
        var w = window.open("/General/ordering/OrderFormPnt.htm","","Console,alwaysRaised,width=620,height=720");
    }

    function OpenPriceFrm()
    {
        var w2 = window.open("/General/pricelist.htm","","Console,alwaysRaised,width=510,height=720,scrollbars=1");
    }


function checkmail()
{

	if	(	dontcheckmail 
		||	document.paypalform.mailme[0].checked 
		||	document.paypalform.mailme[1].checked )
	return true;
	alert( 'please select your mail preference - NO if you are already on my list' );
	return false;
}

    function clickrenew()
    {
//		expllicitly set the value (for the POST) and ensure state is recorded
        if( document.getElementById('renew').checked )
        {
            document.getElementById('renew').value = "YES";
        }
        else
        {
	        document.getElementById('renew').value = "NO";
        }
        updatecookie( 'renew' );
    }

    function clickchange()	//	what do we do about 'change' of details???
    {
	//	just ensure state is recorded
        updatecookie( 'change' );
    }


//    deal with final submit/confirm action
    function checkform( flag, loginreq, pwreq, pw2req, otherreq )
    {
//alert( "check form ");	    
email = 1;
address = 2;
    
//alert( "action is " + document.forms.changedet.action );
		if( loginreq )
		{
			if( document.getElementById( 'login' ).value == '' )
			{
				alert( 'you must enter the login ID' );
				return false;
			}
		}
		
//		if changing details nothing reaquired of passwords if left blank		
		if( flag == 2 && document.getElementById( 'password' ).value == '' )
			return true;
		
		if( pwreq )
		{
			if( document.getElementById( 'password' ).value == '' 
			||  document.getElementById( 'password' ).value.length < 5)
			{
				alert( 'you must enter a password of five or more characters' );
				return false;
			}
			if( pw2req )
			{
				if	( 	document.getElementById( 'password2' ).value == '' 
					||	document.getElementById( 'password2' ).value != document.getElementById( 'password' ).value
					)
				{
					if( flag == 2 )
						resp = confirm( 'If your are not changing password OK to continue;	\nIf you are changing password Cancel and re-enter your chosen password' );
					else
						resp = confirm( 'Existing users OK to continue;\nNew users Cancel and re-enter your chosen password' );
					if( !resp )
						return false;
				}
			}
		}
x = otherreq & email;
y = otherreq & address;

//alert( "other req is " + otherreq + "; or & em is "+ x +  ";  or & ad is "+ y);		
		if( otherreq & address == address)
		{
			if( document.getElementById( 'last_name' ).value == '' )
			{
				alert( 'you must enter a contactname' );
				return false;
			}
			if( document.getElementById( 'organisation' ).value == '' )
			{
				alert( 'you must enter your organisation' );
				return false;
			}
			if( document.getElementById( 'address' ).value == '' )
			{
				alert( 'you must enter your address' );
				return false;
			}
			if( document.getElementById( 'town' ).value == '' )
			{
				alert( 'you must enter your town' );
				return false;
			}
			if( document.getElementById( 'postcode' ).value == '' )
			{
				alert( 'you must enter a valid post code' );
				return false;
			}
		}		if( otherreq & email == email)
		{
			if( !checkemail() )
			{
				alert( 'you must enter a valid email address' );
				return false;
			}
		}

		return true;	
    }





function checkemail()
{
	var res = true;
	var str=document.getElementById( 'email' ).value
	var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (!filter.test(str))
		res = false
	return ( res )
}

    
//
//
//
//	get_radio_value
//	return the value of the selected item for the RADIO element passed as param
//
	function get_radio_value( element )
	{
	
//	alert( "get radio value for " + element.name + ", LENGTH: " + element.length);
	
		for (var i=0; i < element.length; i++)
		{
			if (element[i].checked)
			{
				var rad_val = element[i].value;
				return rad_val;
			}
		}
		return '';

	}
//
//
//
//	get_select_value
//	return the value of the selected item for the SELECT element passed as param
//
	function get_select_value( element )
	{
	
//	alert( "get select value for " + element.name + ", LENGTH: " + element.length);
	
		for (var i=0; i < element.length; i++)
		{
			if (element[i].selected)
			{
				var rad_val = element[i].value;
				return rad_val;
			}
		}
		return '';

	}

//	
//
//	calcBooks
//	verify that input is good number, if not warn, clear and reset focus
//
	function calcBooks( book, reset )
	{
var		numbername 	= 'books' + book;
var		qtyname 	= 'qty' + book;

	    if( document.getElementById(numbername).value == "" )
	    {
	       document.getElementById(numbername).value = "0";
	    }

   		v = parseFloat(document.getElementById(numbername).value);
        if (isNaN(v))
        {
            alert("Quantity must be numeric");
            document.getElementById(numbername).value = "0";
            document.getElementById(numbername).focus();
        }
        else
        {
        	document.getElementById( qtyname ).value = document.getElementById(numbername).value;
        	if( reset )
        		document.getElementById(numbername).value = '0';
		}
	     updatecookie( 'books' );
	
	}
	
	
	function calcAllBooks()
	{
		calcBooks( 'OPG', true );
		calcBooks( 'HBG', true );
		calcBooks( 'MAX', true );
	}
//	
//
//	calceBooks
//	verify that input is good number, if not warn, clear and reset focus
//
	function calceBooks( book, reset )
	{
var		numbername 	= 'bookse' + book;
var		qtyname 	= 'qtye' + book;
//alert( "num: " + numbername + "; qty: "+qtyname );
	    if( document.getElementById(numbername).value == "" )
	    {
	       document.getElementById(numbername).value = "0";
	    }

   		v = parseFloat(document.getElementById(numbername).value);
        if (isNaN(v))
        {
            alert("Quantity must be numeric");
            document.getElementById(numbername).value = "0";
            document.getElementById(numbername).focus();
        }
        else
        {
        	document.getElementById( qtyname ).value = document.getElementById(numbername).value;
        	if( reset )
        		document.getElementById(numbername).value = '0';
		}
	     updatecookie( 'ebooks' );
	
	}
//	
//
//
	function checkSubs()
	{
		if( document.subsform.os0.value == "0" )
		{
			alert( "You need to select the category of your organisation" );
			document.subsform.os0.focus;
			return false;
		}

	}
//
//	calcSubs
//	if a category is chose, plug the appropriate name and value into their (hidden) elements
//
	function calcSubs( )
	{
//alert( "os0 val = " +document.subsform.os0.value);
		//index = value.substr( value.length-1 );
		if( document.subsform.os0.value == "0" )
		{
			return;
		}

		switch( document.subsform.os0.value )
		{
			case '1':
				document.subsform.item_number.value = "Category 1";
				document.subsform.amount.value = 570;
				break
			case '2':
				document.subsform.item_number.value = "Category 2";
				document.subsform.amount.value = 445;
				break
			case '3':
				document.subsform.item_number.value = "Category 3";
				document.subsform.amount.value = 310;
				break
			case '4':
				document.subsform.item_number.value = "Category 4";
				document.subsform.amount.value = 175;
				break
		}

		
		updatecookie( document.subsform.item_number.value );	
		return;
	}
//
//
//	updatecookie
//	build value from order form element settings and save as cookie 
//	allows temporary retention of choices for user
//
	function updatecookie( num )
	{

//alert( 'update: num = '+ num );

		value = '';			
//		SUBS		
		value += get_select_value( document.subsform.os0 );
		value += '[]';
		value += document.subsform.item_number.value;
		value += '[]';
		value += document.subsform.amount.value;
		value += '[]';
		value += ( document.getElementById('renew').checked )?"YES":"NO";//document.getElementById('renew').value;
		value += '[]';

//		BOOKS
		value += document.getElementById('booksHBG').value;
		value += '[]';
		value += document.getElementById('booksOPG').value;
		value += '[]';
		value += document.getElementById('booksMAX').value;
		value += '[]';

//		EBOOKS
		value += document.getElementById('bookseOPG').value;
		value += '[]';
		value += document.getElementById('bookseMAX').value;


//alert( 'new value is' + value  );
		setCookie( 'HBHorder', value, 1, '', '', '' );
	//	setCookie( 'HBHorder', value, 1, '/', 'lc.hbhelp.co.uk', '' );
	}
//
//
//	loadOrder
//	pick up HBOrder cookie and set order form elements accordingly
//
	function loadOrder()
	{

   	if( !( value = getCookie( 'HBHorder' ) ))
    	{
//			alert( 'no cookie found');    	
			return '';
    	}
    	var info_array = value.split( '[]' );
    	
//alert( 'info_array: ' + info_array );	


//		SUBS		
		element = document.subsform.os0;
		for (var i=0; i < element.length; i++)
			element[i].selected = ( info_array[0] == element[i].value );

		document.subsform.item_number.value = info_array[1];
		document.subsform.amount.value = info_array[2];

		document.getElementById('renew').checked = ( info_array[3] == 'YES' );
		document.getElementById('renew').value = info_array[3];

//		BOOKS
		document.getElementById('booksHBG').value = info_array[4];
		
		document.getElementById('booksOPG').value 	= info_array[5];

		document.getElementById('booksMAX').value 	= info_array[6];
		
//		EBOOKS
		document.getElementById('bookseOPG').value	= info_array[7];

		document.getElementById('bookseMAX').value 	= info_array[8];
//alert( 'finished loadOrder' );		
    	return info_array;
    }
//
//	getCookie
//	get and return the cookie specified by the param
//
//	this fixes an issue with the old method, ambiguous values 
//	with this test document.cookie.indexOf( name + "=" );
//
	function getCookie( check_name ) {
		var a_all_cookies = document.cookie.split( ';' );
		var a_temp_cookie = '';
		var cookie_name = '';
		var cookie_value = '';
		var b_cookie_found = false; // set boolean t/f default f
		
		for ( i = 0; i < a_all_cookies.length; i++ )
		{
			// now we'll split apart each name=value pair
			a_temp_cookie = a_all_cookies[i].split( '=' );
			
			
			// and trim left/right whitespace while we're at it
			cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
		
			// if the extracted name matches passed check_name
			if ( cookie_name == check_name )
			{
				b_cookie_found = true;
				// we need to handle case where cookie has no value but exists (no = sign, that is):
				if ( a_temp_cookie.length > 1 )
				{
					cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
				}
				// note that in cases where cookie is initialized but no value, null is returned
				return cookie_value;
				break;
			}
			a_temp_cookie = null;
			cookie_name = '';
		}
		if ( !b_cookie_found )
		{
			return null;
		}

	}		
//
//
//	setCookie
//	set the cookie according to the params
//
    function setCookie( name, value, daysalive, path, domain, secure ) 
	{
//alert( "set cookie: dom = " + domain + "value is "+ value );
		// set time, it's in milliseconds
		var today = new Date();
		today.setTime( today.getTime() );
		
	//	create expire date from input # of days
		if ( daysalive )
		{
		expires = daysalive * 1000 * 60 * 60 * 24;
		}
		var expires_date = new Date( today.getTime() + (expires) );
//alert( "about to set cookie: dom = " + domain + "value is "+ value );
var str = 
		name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
		( ( path ) ? ";path=" + path : "" ) + 
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
		
//alert( "cookie string = " + str );
		
		document.cookie = 
		name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
		( ( path ) ? ";path=" + path : "" ) + 
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
	}
//
//
//	loadDetails
//	pick up name and address etc for details form area
//
	function loadDetails()
	{
//alert( "loading" );		
	   	if( !( value = getCookie( 'HBHdetails' ) ))
    	{
  			document.getElementById('first_name').focus();
//alert( 'no cookie found');  
			return '';
	   	}
    	var info_array = value.split( '[]' );
//alert( "loading away" );		
		document.getElementById('first_name').value = info_array[0];
		document.getElementById('last_name').value = info_array[1];
		document.getElementById('organisation').value = info_array[2];
		document.getElementById('address').value = info_array[3];
		document.getElementById('town').value = info_array[4];
		Select_Value_Set( 'county', info_array[5] );
		document.getElementById('postcode').value = info_array[6];
		document.getElementById('phone').value = info_array[7];
		document.getElementById('fax').value = info_array[8];
		document.getElementById('email').value = info_array[9];
		document.getElementById('ordernum').value = info_array[10];
//alert( "loaded" );		

	}
	
	function updateDetails()
	{
//alert( "update details () " );	
		value = '';
		value += document.getElementById('first_name').value;
		value += '[]';
		value += document.getElementById('last_name').value;
		value += '[]';
		value += document.getElementById('organisation').value;
		value += '[]';
		value += document.getElementById('address').value;
		value += '[]';
		value += document.getElementById('town').value;
		value += '[]';
		value += document.getElementById('county').value;
		value += '[]';
		value += document.getElementById('postcode').value;
		value += '[]';
		value += document.getElementById('phone').value;
		value += '[]';
		value += document.getElementById('fax').value;
		value += '[]';
		value += document.getElementById('email').value;
		value += '[]';
		value += document.getElementById('ordernum').value;

		setCookie( 'HBHdetails', value, 1, '', '', '' );
	}


	function Select_Value_Set( SelectID, Value)
	{
		var SelectObject = document.getElementById( SelectID );
		for(index = 0; index < SelectObject.length; index++)
		{
			if(SelectObject[index].value == Value)
			{
				SelectObject.selectedIndex = index;
				return;
			}
		}
	}

    -->




