/** Module AJAX data processing module
 * 
 * @author John Smith <ai@phpagency.net>
 * @copyright Copyright (c) 2008, John Smith
 * @version 1.2
 * @link http://championfanwear.com
 */


var xmlHttp = createXmlRequestObject();

/** Function of initialization of XMLHttpRequest object
* Function find the latest version of XMLHttpRequest object
* @return xmlHttp object
*/
function createXmlRequestObject()
{
	var xmlHttp;
	try
	{
		xmlHttp = new XMLHttpRequest();
		
	}
	catch(e)
	{
		var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
										'MSXML2.XMLHTTP.5.0',
										'MSXML2.XMLHTTP.4.0',
										'MSXML2.XMLHTTP.3.0',
										'MSXML2.XMLHTTP',
										'Microsoft.XMLHTTP');
		for( var i=0; i < XmlHttpVersions.length && !xmlHttp; i ++ )
		{
			try
			{
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch(e){}
		}
	}
	if ( !xmlHttp )
		alert('Error creation XMLHttpRequest');
	else 
		return xmlHttp;	
}


/** Function of sending search request to server by AJAX
* @param void
* @return void
*/
function process( item_id, user_id, action, combination_id_temp)
{
	if( xmlHttp.readyState == 0 || xmlHttp.readyState == 4 )
	{
//		var combination_id_temp = '';
		count = 1;
		if (document.getElementById){
			
//		combination_id_temp = document.forms.incart.row_id.value
//		obj = document.getElementById('combination_id');
//		combination_id_temp = obj.value;
		
		obj_count = document.getElementById('count');
		count = obj_count.value;
		}
		href = "/server_request.php?item_id="+item_id+"&user_id="+user_id+"&saved_action="+action+'&row_id='+combination_id_temp+'&count='+count;
		xmlHttp.open( "GET",href, true );
		xmlHttp.onreadystatechange = handleServerResponse;
		xmlHttp.send(null);
	}
	else
	{
		setTimer('process()', 1000 );
	}
}


/** Handler for AJAX request
* @param void
* @return void
*/
function handleServerResponse()
{
	if( xmlHttp.readyState == 4 )
	{
		if( xmlHttp.status == 200 )
		{
			xmlResponse = xmlHttp.responseXML;
			if(!xmlResponse || !xmlResponse.documentElement)
				alert('Incorrect XML structure:\n'+xmlHttp.responseText);
			xmlRoot = xmlResponse.documentElement;
			schoolnameArray = xmlRoot.getElementsByTagName("result_name");
			obj = document.getElementById('back_ordering_text');
			var search_result = '';
			search_result = schoolnameArray.item(0).firstChild.data;
			if( search_result == 1 )
			{
				hide('add_to_wishlistc');
				show('add_to_wishlist');
				if (document.getElementById){
				obj = document.getElementById('add_to_wishlist'); 
				obj.style.display = ""; 
				}
			}
			else 
			{
				obj.innerHTML = 'You have problem ....';
			}
		}
		else
		{
			alert('We have problems with ' + xmlHttp.statusText );
		}
	}
}

/** Function of sending search request to server by AJAX for save current status
* @param void
* @return void
*/
/** Function of sending search request to server by AJAX
* @param void
* @return void
*/
function process2( item_id, user_id, combination_id_temp )
{
	f=document.forms.incart;
	url_add = '';
	if(!f.gr_ids.value)
	{
	for(i=0;i<=f.gr_count.value;i++){
		if(f.gr_ids[i].checked) url_add+="&gr_ids[]="+f.gr_ids[i].value;
	}
	}
	else
	{
		if(f.gr_ids.checked) url_add+="&gr_ids[]="+f.gr_ids.value;
	}
	if(url_add==""){
		alert("Please choose at least one registry.");
		return false;
	}
	
//	obj = document.getElementById('combination_id');
//	combination_id_temp = obj.value;

	count = 1;
	obj_count = document.getElementById('count');
	count = obj_count.value;

	if( count < 1 ) count = 1;

	if( xmlHttp.readyState == 0 || xmlHttp.readyState == 4 )
	{
		href = "/server_request.php?item_id="+item_id+"&user_id="+user_id+'&saved_action=add_giftregistry'+url_add+'&row_id='+combination_id_temp+'&count='+count;
		xmlHttp.open( "GET",href, true );
		xmlHttp.onreadystatechange = handleServerResponse2;
		xmlHttp.send(null);
	}
	else
	{
		setTimer('process2()', 1000 );
	}
}


/** Handler for AJAX request
* @param void
* @return void
*/
function handleServerResponse2()
{
	if( xmlHttp.readyState == 4 )
	{
		if( xmlHttp.status == 200 )
		{
			xmlResponse = xmlHttp.responseXML;
			if(!xmlResponse || !xmlResponse.documentElement)
				alert('Incorrect XML structure:\n'+xmlHttp.responseText);
			xmlRoot = xmlResponse.documentElement;
			schoolnameArray = xmlRoot.getElementsByTagName("result_name");
//			obj = document.getElementById('back_ordering_text');
			var search_result = '';
			search_result = schoolnameArray.item(0).firstChild.data;
			if( search_result == 1 )
			{
				ajaxhide('#add_to_registry');
				show('add_to_registryd');
//				hide('add_to_registry');
//				show('add_to_registryd');
/*				
				if (document.getElementById){
					obj = document.getElementById('add_to_registry'); 
					obj.style.display = "none"; 
					obj2 = document.getElementById('add_to_registryd'); 
					obj2.style.display = ""; 
				}
*/				
			}
			else 
			{
//				obj.innerHTML = 'You have problem ....';
			}
		}
		else
		{
			alert('We have problems with ' + xmlHttp.statusText );
		}
	}
}


function chech_comb_id(row_id)
{
	var result;
	if(document.forms.incart.prod_row != null)
		result=document.forms.incart.prod_row.value;
	else result=document.forms.incart.prod_row_2.value;
	if(result=='') result=row_id;
	return 	result;
}

/** Function of adding products to cart by AJAX
* @param void
* @return void
*/
function process_cart( item_id, row_id, count, cart_returl )
{
//	alert('item_id='+item_id+'row_id='+row_id+'count='+count);
	var row_id_tmp;
	if(row_id == '')row_id_tmp = 0;
	else row_id_tmp = row_id;
//	alert(main_stock_array[item_id][row_id_tmp]);
	if(main_stock_array[item_id][row_id_tmp] < count){
		alert("Sorry, we don't have enough items on stock. We have only "+main_stock_array[item_id][row_id_tmp]+' items.');
		document.getElementById('qty'+item_id).focus();
		return ;
	}
	if( xmlHttp.readyState == 0 || xmlHttp.readyState == 4 )
	{
		href = "/cart?item_id="+item_id+"&row_id="+row_id+"&count="+count+"&action=add"+"&cart_returl="+cart_returl;
		xmlHttp.open( "GET", href, true );
		xmlHttp.onreadystatechange = handleServerResponsecart;
		xmlHttp.send(null);
	}
	else
	{
		setTimer('process_cart()', 1000 );
	}
}


/** Handler for AJAX request
* @param void
* @return void
*/
/*
function handleServerResponsecart2(){

	setTimeout('handleServerResponsecart()', 10 );

}
*/
function handleServerResponsecart()
{
	if( xmlHttp.readyState == 4 )
	{
		if( xmlHttp.status == 200 )
		{
//reload this form
			document.forms.incart.submit();			
		}
		else
		{
			alert('We have problems with ' + xmlHttp.statusText );
		}
	}
}

var global_k = '';

function process_delete_cart( href, item_id )
{
	global_k = '#cartp'+item_id;
if( xmlHttp.readyState == 0 || xmlHttp.readyState == 4 )
	{
		xmlHttp.open( "GET", href, true );
		xmlHttp.onreadystatechange = handleServerResponsedeletecart;
		xmlHttp.send(null);
	}
	else
	{
		setTimer('process_cart()', 1000 );
	}
}


/** Handler for AJAX request
* @param void
* @return void
*/
function handleServerResponsedeletecart()
{
	if( xmlHttp.readyState == 4 )
	{
		if( xmlHttp.status == 200 )
		{
//reload this form
			ajaxhide(global_k);
			document.forms.incartcart.submit();			
		}
		else
		{
			alert('We have problems with ' + xmlHttp.statusText );
		}
	}
}

function process_review(item_id)
{
	var f = document.forms["rv_post"];
	
	if(f.rv_name.value == '') {
	alert("Please enter Your Name");
	return(false);		
	}
		
	if(f.rv_email.value == '') {
	alert("Please enter Your Email");
	return(false);		
	}
//return str.match(/^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,7}$/)	
	var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
  	if (!f.rv_email.value.match(reg)) {
  	alert("Please enter correct Email");
	return(false);		
  	}
		
	if(f.rv_rating.selectedIndex == 0) {
	alert("Please select product raiting");
	return(false);		
	}
		
	if(f.rv_text.value == '') {
	alert("Please enter your review");
	return(false);		
	}
	var rv_name = f.rv_name.value;
	var rv_email = f.rv_email.value;
	var rv_rating = f.rv_rating.options[f.rv_rating.selectedIndex].value;
	var rv_text = f.rv_text.value;
	href = '/review.php?item_id='+item_id+'&rv_name='+rv_name+'&rv_email='+rv_email+'&rv_rating='+rv_rating+'&rv_text='+rv_text;
	
if( xmlHttp.readyState == 0 || xmlHttp.readyState == 4 )
	{
		xmlHttp.open( "GET", href, true );
		xmlHttp.onreadystatechange = handleServerResponsereview;
		xmlHttp.send(null);
	}
	else
	{
		setTimer('process_cart()', 1000 );
	}
}


/** Handler for AJAX request
* @param void
* @return void
*/
function handleServerResponsereview()
{
	if( xmlHttp.readyState == 4 )
	{
		if( xmlHttp.status == 200 )
		{
			xmlResponse = xmlHttp.responseXML;
			if(!xmlResponse || !xmlResponse.documentElement)
				alert('Incorrect XML structure:\n'+xmlHttp.responseText);
			xmlRoot = xmlResponse.documentElement;
			schoolnameArray = xmlRoot.getElementsByTagName("result_name");
			obj = document.getElementById('back_ordering_text');
			var search_result = '';
			search_result = schoolnameArray.item(0).firstChild.data;
			if( search_result == 1 )
			{
				ajaxshow1('#write-review-ty');
				ajaxhide1('#write-review');
			}
			else 
			{
				alert('Error in adding review. Please try again...');
			}
		}
		else
		{
			alert('We have problems with ' + xmlHttp.statusText );
		}
	}

}
function isset(  ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: FremyCompany
    // +   improved by: Onno Marsman
    // *     example 1: isset( undefined, true);
    // *     returns 1: false
    // *     example 2: isset( 'Kevin van Zonneveld' );
    // *     returns 2: true
    
    var a=arguments; var l=a.length; var i=0;
    
    if (l==0) { 
        throw new Error('Empty isset'); 
    }
    
    while (i!=l) {
        if (typeof(a[i])=='undefined' || a[i]===null) { 
            return false; 
        } else { 
            i++; 
        }
    }
    return true;
}

function process_contact_us()
{
	var f = document.forms["cust_post"];
	
	if(f.cust_name.value == '') {
	alert("Please enter Your Name");
	f.cust_name.focus();
	return;
	}
		
	if(f.cust_email.value == '') {
	alert("Please enter Your Email");
	f.cust_email.focus();
	return;		
	}
//return str.match(/^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,7}$/)	
	var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
  	if (!f.cust_email.value.match(reg)) {
  	alert("Please enter correct Email");
  	f.cust_email.focus();
	return;		
  	}
/*		
	if(f.cust_subject.value == ''){
	alert("Please select your subject");
	f.cust_subject.focus();
	return;
	}
*/		
	if(f.cust_message.value == '') {
	alert("Please enter your message");
	f.cust_message.focus();
	return;
	}
	var cust_name = f.cust_name.value;
	var cust_email = f.cust_email.value;
	var cust_subject = f.cust_subject.value;
	var cust_message = f.cust_message.value;
	href = '/server_request.php?cust_name='+cust_name+'&cust_email='+cust_email+'&cust_subject='+cust_subject+'&cust_message='+cust_message+'&saved_action=contact_us';
//	alert(href);
if( xmlHttp.readyState == 0 || xmlHttp.readyState == 4 ){
	
		xmlHttp.open( "GET", href, true );
		xmlHttp.onreadystatechange = handleServerResponseContactUs;
		xmlHttp.send(null);
		
	}
	else{
		
		setTimer('process_contact_us()', 1000 );
		
	}
}


/** Handler for AJAX request
* @param void
* @return void
*/
function handleServerResponseContactUs()
{
	if( xmlHttp.readyState == 4 )
	{
		if( xmlHttp.status == 200 )
		{
			xmlResponse = xmlHttp.responseXML;
			if(!xmlResponse || !xmlResponse.documentElement)
				alert('Incorrect XML structure:\n'+xmlHttp.responseText);
			xmlRoot = xmlResponse.documentElement;
			schoolnameArray = xmlRoot.getElementsByTagName("result_name");
			obj = document.getElementById('back_ordering_text');
			var search_result = '';
			search_result = schoolnameArray.item(0).firstChild.data;
			if( search_result == 1 ){
				
				hide('boxform0');
				show('boxform1')
			}
			else 
			{
				alert('Error in adding review. Please try again...');
			}
		}
		else
		{
			alert('We have problems with ' + xmlHttp.statusText );
		}
	}

}
