var pages_retrieved_people_id = 'none';

//FUNCTIONS ALSO IN SITE_FUNCTIONS
function GetXmlHttpObject(){
    var xmlHttp = null;
    try {
        // Firefox, Opera 8.0+, Safari, IE7
        xmlHttp = new XMLHttpRequest();
    } 
    catch (e) {
        //Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

function queryDB(level,ajaxFunction,theQuery,display_result_area){
	var o = GetXmlHttpObject();

    if (o == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    
	if(level=="public_html"){
		var url = "cms/script/queryDB.php";
	}else if(level=="frontend"){
		var url = "../cms/script/queryDB.php";
	}
	
	
    url = url + "?f="+ajaxFunction+"&"+theQuery;
    url = url + "&sid=" + Math.random();
	
    o.open("GET", url, true);
	o.onreadystatechange = function(){
		stateChangedObject(o,display_result_area);
	}
	
    o.send(null);
	
	return;
}


function downloadFile(fileUrl,level,display_result_area){
	alert('here');
	var fileUrl = encodeURIComponent(fileUrl);
	alert(fileUrl);
	
	var o = GetXmlHttpObject();

    if (o == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    
	if(level=="public_html"){
		var url = "cms/class/downloadFile.php";
	}else if(level=="frontend"){
		var url = "../cms/class/downloadFile.php";
	}
	
	
	var parameters = "file="+fileUrl;
	parameters = parameters + "&sid=" + Math.random();
	
    o.open("POST", url, true);
	o.onreadystatechange = function(){
		stateChangedObject(o,display_result_area);
	}
	
    o.send(parameters);
	
	return;
}

function insertDB(verify,level,ajaxFunction,tablesArray,field_namesArray,field_valuesArray,display_result_area,confirm_message){
	if(verify==false){
		ajaxQuery = "tables="+tablesArray+"&field_names="+field_namesArray+"&field_values="+field_valuesArray;
		queryDB(level,ajaxFunction,ajaxQuery,display_result_area);
		return;
	}else{
		if(confirm(confirm_message)){
			ajaxQuery = "tables="+tablesArray+"&field_names="+field_namesArray+"&field_values="+field_valuesArray;
			queryDB(level,ajaxFunction,ajaxQuery,display_result_area);
			return;
		}else{
			//alert("Item Not Added.");
			hideAddBox();
			return;
		}
	}
}

function stateChangedObject(o,display_result_area){
    if(o.readyState == 4 || o.readyState == "complete"){
		if(o.status == 200){
			var display_result_areaArray = "";
			var display_result_areaArray = display_result_area.split("-");
			var action = display_result_areaArray[0];

				if(action == "pagesJoinMailingList"){
					if(o.responseText=='Available'){
						pages_insertDBPeopleMailingLists();
						o.setRequestHeader("Connection", "close");
						o.close;
					}else if(o.responseText=='Already Exists'){
						document.getElementById('join_mailing_lists_response').innerHTML = '<span style="color:#cc0000">This Email Account is already in use. Please enter a differnet email address to start a new account, or log in to manage the mailing lists you are on.</span>';
						document.getElementById('join_mailing_lists_response').style.display = "";
						document.getElementById('next_step_button').disabled=false;
						o.setRequestHeader("Connection", "close");
						o.close;
					}else if(o.responseText=='Bad Format'){
						alert('Please enter a correctly formated Email Address.');
					}
				}else if(action=='completePagesJoinMailingList'){
					showPagesMailingListSuccessMessage();
				
				}else if(action=='pagesJoinPromotion'){
					if(o.responseText=='Available'){
						pages_insertDBPeoplePlusJoinPromotion(display_result_areaArray[1]);
					}else if(o.responseText=='Already Exists'){
						setPeopleIdByEmail(display_result_areaArray[1]);
					}else if(o.responseText=='Bad Format'){
						document.getElementById('email_address_'+display_result_areaArray[1]).style.backgroundColor = "#ff9933";
					}
				}else if(action=='pagesCompleteJoinPromotion'){
					pages_completeJoinPromotion(display_result_areaArray[1]);
				}else if(action=='setPeopleIdByEmail'){
					pages_retrieved_people_id = o.responseText;
					
				}else if(action=='setPeopleIdByEmail_joinPromotion'){
					pages_retrieved_people_id = o.responseText;
					pages_insertDBJoinPromotionOnly(display_result_areaArray[1]);
				}else{
					;
				}
			
			
			o.setRequestHeader("Connection", "close");
		}
	}
}


function checkForExistingInDB(level,table,field_name,field_value,display_result_area){
	ajaxQuery = "table="+table+"&field_name="+field_name+"&field_value="+field_value;
	queryDB(level,'checkForExistingInDB',ajaxQuery,display_result_area);
}

function validateEmailAddressStructure(level,table,field_name,field_value,display_result_area){
	ajaxQuery = "table="+table+"&field_name="+field_name+"&field_value="+field_value;
	queryDB(level,'validateEmailStructure',ajaxQuery,display_result_area);
}


function pagesJoinMailingList(){
	var email = document.getElementById('email_address_01').value;
	
	if(email!='' && email!='Enter Email Address Here'){
		checkForExistingInDB('frontend','up','up_email_address',email,'pagesJoinMailingList');
	}
}


function pagesJoinPromotion(promotionsId){
	var email = document.getElementById("email_address_"+promotionsId).value;
	
	if(email!='' && email!='Enter Email Address Here'){
		checkForExistingInDB('frontend','up','up_email_address',email,'pagesJoinPromotion-'+promotionsId);
	}
}


function pages_insertDBPeopleMailingLists(){
	var salutation = '0';
	var email_address_01 = document.getElementById('email_address_01').value;
	var first_name = document.getElementById('first_name').value;
	var middle_name = "";
	var last_name = document.getElementById('last_name').value;
	var phone_number_01;
	var street_address_01 = document.getElementById('street_address_01').value;
	var street_address_02 = document.getElementById('street_address_02').value;
	var city = document.getElementById('city').value;
	var state = document.getElementById('state').options[document.getElementById('state').selectedIndex].value;
	var zip = document.getElementById('zip').value;
	var zip_plus_four = document.getElementById('zip_plus_four').value;
	var area = document.getElementById('phone_area').value;
	var exchange = document.getElementById('phone_exchange').value;
	var local = document.getElementById('phone_local').value;
	
	
	if(email_address_01!='' && first_name!='' && last_name!=''){
		document.getElementById('next_step_button').disabled=true;
		var d = new Date();
		var initialization_code = (d.getFullYear())*(d.getMonth()+1)*(d.getDate())*(d.getHours()+1)*(d.getMinutes()+1)*(d.getMinutes()+1)*(d.getSeconds()+1);
		var pw = getPassword('8');
		var table = 'people--MA--up--MA--p_people_shipping_billing_addresses--MA--biographies--MA--p_mailing_lists_people';
		var field_names = 'first_name--SSA--middle_name--SSA--last_name--SSA--salutations_id--MA--username--SSA--password--SSA--access_level_id--SSA--people_id--SSA--up_email_address--SSA--initialization_code--MA--people_id--MA--people_id';
		var field_values = first_name+'--SSA--'+middle_name+'--SSA--'+last_name+'--SSA--'+salutation+'--MA--'+last_name+'LaSt..Id..InSeRtEd!--SSA--'+pw+'--SSA--5--SSA--LaSt..Id..InSeRtEd!--SSA--'+email_address_01+'--SSA--'+initialization_code+'--MA--FiRsT..Id..InSeRtEd!--MA--FiRsT..Id..InSeRtEd!';
		
		//search for selected mailing lists and created queries to add to field_names and field_values...
		var ml_idsArray = document.getElementsByName('mailing_lists_ids');
		var ml_field_names  = '';
		var ml_field_values = '';
		
		
		for(i=0;i<ml_idsArray.length;i++){
			var ml_id = ml_idsArray[i].value;
			
			if(ml_field_names==''){
				ml_field_names = '--MA--mailing_lists_id--SSA--people_id';
				ml_field_values= '--MA--'+ml_id+'--SSA--FiRsT..Id..InSeRtEd!';
			}else{
				ml_field_names = ml_field_names+'--SA--mailing_lists_id--SSA--people_id';
				ml_field_values= ml_field_values+'--SA--'+ml_id+'--SSA--FiRsT..Id..InSeRtEd!';
			}
		}
		
		//search to see if there has been any part of the address entered.
		var address_field_names='';
		var address_values='';
		
		if(street_address_01!='' || street_address_02!='' || city!='' || state!='0' || (zip!='' && zip!='xxxxx') || (zip_plus_four!='' && zip_plus_four!='xxxx')){
			table += '--MA--addresses';
			address_field_names = '--MA--people_id--SSA--recipient_name--SSA--street_01--SSA--street_02--SSA--city--SSA--state--SSA--zip--SSA--zip_plus_four';
			address_values = '--MA--FiRsT..Id..InSeRtEd!--SSA--'+first_name+' '+last_name+'--SSA--'+street_address_01+'--SSA--'+street_address_02+'--SSA--'+city+'--SSA--'+state+'--SSA--'+zip.replace("xxxxx","")+'--SSA--'+zip_plus_four.replace("xxxx","");
		}
		
		
		//search to see if there is a phone number
		var phone_field_names='';
		var phone_values='';
		
		if((area!='' && area!='xxx') || (exchange!='' && exchange!='xxx') || (local!='' && local!='xxxx')){
			table += '--MA--phone_numbers';
			phone_field_names = '--MA--people_id--SSA--area_code--SSA--exchange--SSA--local';
			phone_values = '--MA--FiRsT..Id..InSeRtEd!--SSA--'+area.replace("xxx","")+'--SSA--'+exchange.replace("xxx","")+'--SSA--'+local.replace("xxxx","");
		}
		
		
		field_names = field_names+ml_field_names+address_field_names+phone_field_names;
		field_values = field_values+ml_field_values+address_values+phone_values;
		
		
		insertDB(false,'frontend','insertDBSetSession',table,field_names,field_values,'completePagesJoinMailingList','');
		
		return;
	}else{
		document.getElementById('next_step_button').disabled=false;
		if(!document.getElementById('email_address_01').value || document.getElementById('email_address_01').value=='Enter Email Address Here'){
			document.getElementById('email_address_01').style.borderColor = "red";
		}else{
			document.getElementById('email_address_01').style.borderColor = "";
		}
		if(!document.getElementById('first_name').value){
			document.getElementById('first_name').style.borderColor = "red";
		}else{
			document.getElementById('first_name').style.borderColor = "";
		}
		if(!document.getElementById('last_name').value){
			document.getElementById('last_name').style.borderColor = "red";
		}else{
			document.getElementById('last_name').style.borderColor = "";
		}
		return;
	}
	
	return;
}


function showPagesMailingListSuccessMessage(){
	document.getElementById('join_mailing_lists_response').innerHTML = '<br><span style="color:#006600; font-size:11px;">Thank you for joining the mailing list!</span><br><br>';
	document.getElementById('pages_join_mailing_list_start').style.display = 'none';
	document.getElementById('pages_join_mailing_list_finish').style.display = 'inline';
}





//JOIN PROMOTION
function pages_insertDBPeoplePlusJoinPromotion(promotionsId){
	
	var email_address_01 = document.getElementById("email_address_"+promotionsId).value; 
	
	var promotions_id = promotionsId;
	
	document.getElementById('next_step_button_'+promotionsId).disabled=true;
	
	var first_name = document.getElementById('first_name_'+promotionsId).value;
	var middle_name = '';
	var last_name = document.getElementById('last_name_'+promotionsId).value;
	var salutations_id = '0';
	
	var d = new Date();
	var initialization_code = (d.getFullYear())*(d.getMonth()+1)*(d.getDate())*(d.getHours()+1)*(d.getMinutes()+1)*(d.getMinutes()+1)*(d.getSeconds()+1);
	var pw = getPassword('8');
	var table = 'people--MA--up--MA--p_people_shipping_billing_addresses--MA--biographies--MA--p_people_promotions';
	var field_names = 'first_name--SSA--middle_name--SSA--last_name--SSA--salutations_id--MA--username--SSA--password--SSA--access_level_id--SSA--people_id--SSA--up_email_address--SSA--initialization_code--MA--people_id--MA--people_id--MA--people_id--SSA--promotions_id';
	var field_values = first_name+'--SSA--'+middle_name+'--SSA--'+last_name+'--SSA--'+salutations_id+'--MA--'+last_name+'LaSt..Id..InSeRtEd!--SSA--'+pw+'--SSA--5--SSA--LaSt..Id..InSeRtEd!--SSA--'+email_address_01+'--SSA--'+initialization_code+'--MA--FiRsT..Id..InSeRtEd!--MA--FiRsT..Id..InSeRtEd!'+'--MA--FiRsT..Id..InSeRtEd!--SSA--'+promotions_id;
	
	insertDB(false,'frontend','insertDBSetSession',table,field_names,field_values,'pagesCompleteJoinPromotion-'+promotionsId,'');
}

function setPeopleIdByEmail(promotionsId){
	retrievePeopleIdByEmail('setPeopleIdByEmail_joinPromotion',promotionsId);
}

function pages_insertDBJoinPromotionOnly(promotionsId){
	document.getElementById('next_step_button_'+promotionsId).disabled=true;
	var people_id = pages_retrieved_people_id;
	var email_address_01 = document.getElementById('email_address_'+promotionsId).value;
	
	var table = 'p_people_promotions';
	var field_names = 'people_id--SSA--promotions_id';
	var field_values = people_id+'--SSA--'+promotionsId;
	
	insertDB(false,'frontend','insertDBSetSession',table,field_names,field_values,'pagesCompleteJoinPromotion-'+promotionsId,'');
}

function retrievePeopleIdByEmail(display_result_area,promotionsId){
	var email_address_01 = document.getElementById('email_address_'+promotionsId).value;
	
	var o = GetXmlHttpObject();

    if (o == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    
	var url = "../cms/class/ajax_retrievePeopleIdByEmail.php";
	
	
    url = url + "?email_address_01="+email_address_01;
    url = url + "&sid=" + Math.random();
	
    o.open("GET", url, true);
	o.onreadystatechange = function(){
		stateChangedObject(o,display_result_area+'-'+promotionsId);
	}
	
    o.send(null);
}

function pages_completeJoinPromotion(promotionsId){
	document.getElementById('join_promotion_area_'+promotionsId).innerHTML = '<span style="color:#006600; font-size:14px;">Success! You\'ve been added to the contest.</span>';
}



////////////////////////////////////////////////////////////////////////////////
///////////////////PASSWORD GENERATION/////////////////////////////////////////
function getRandomNum(lbound, ubound) {
	return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}
				
function getRandomChar(number, lower, upper, other) {
	var numberChars = "123456789";
	var lowerChars = "abcdefghijkmnopqrstuvwxyz";
	var upperChars = "ABCDEFGHIJKLMNPQRSTUVWXYZ";
	var otherChars = "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
	var charSet = '';
	
	
	
	if (number == true)
	charSet += numberChars;
	if (lower == true)
	charSet += lowerChars;
	if (upper == true)
	charSet += upperChars;
	if (other == true)
	charSet += otherChars;
	
	return charSet.charAt(getRandomNum(0, charSet.length));
}
				
function getPassword(length) {
	var rc = "";
	firstNumber=true;
	firstLower=true;
	firstUpper=true;
	firstOther=false;
	
	latterNumber=true;
	latterLower=true;
	latterUpper=true;
	latterOther=false;
	
	
	
	if (length > 0)
	rc = rc + getRandomChar(firstNumber, firstLower, firstUpper, firstOther);
	
	for (var idx = 1; idx < length; ++idx) {
		rc = rc + getRandomChar(latterNumber, latterLower, latterUpper, latterOther);
	}
	return rc;
}
////////////////////////////////////////////////////////////////////////////////













//slide show functions--------------------------------------------------------------------------------------------------------------------------------------------------------------------

	function showGalleryImage(url,page_url,prev_a,product_name){
		showTransBG();
		previous_anchor = prev_a;
		location.href=page_url+'#top_of_page';

		document.getElementById('close_button').style.visibility = "visible";
		document.getElementById('close_button').style.zIndex = "9001";
		
		var myimage = document.getElementById('image_container');
		myimage.style.position = 'fixed';
		myimage.style.zIndex = "9001";
		myimage.style.visibility = "visible";
		myimage.innerHTML = "<img id='current_full_image' src='"+url+"' style='border:2px white solid;'><br><div style='padding-top:10px; font-size:18px; color:#FFFFFF;'>"+product_name+"</div>";
		

		centerImage(url);
	}
	function hideGalleryImage(){
		var url = '';
		centerWindow('image_container');
		var myimage = document.getElementById('image_container');
		myimage.innerHTML = "";
		myimage.style.visibility = "hidden";
		myimage.style.zIndex = "-1";
		document.getElementById('close_button').style.visibility = "hidden";
		document.getElementById('close_button').style.zIndex = "-1";
		hideTransBG();
		newURL = window.location.protocol + "//" + window.location.host + window.location.pathname + "?" + window.location.search.substring(1) + "#"+previous_anchor;
		
		location.href= newURL;
		return;
	}
	
	function centerImage(url){
		var myImage = new Image();
		myImage.src = url;
		myImage.onload = CreateDelegate(myImage, centerWindow);
	}
	
	
	function CreateDelegate(contextObject, delegateMethod){
	    return function(){
	        return delegateMethod.apply(contextObject, arguments);
	    }
	}
	

	function centerWindow(){
		var w = findWindowSize().width;
		var h = findWindowSize().height;
		
		var l_pad = ((w-this.width)/2)+"px";
		var t_pad = ((h-this.height)/2)+"px";
		
		document.getElementById('image_container').style.left = l_pad;
		document.getElementById('image_container').style.top = t_pad;
	}
	

	function showTransBG(){
		document.getElementById('slide_show_container').style.display = "inline";
		document.getElementById('slide_show_container').style.position = "absolute";
		document.getElementById('slide_show_container').style.zIndex = "8000";
		document.getElementById('slide_show_container2').style.display = "inline";
		document.getElementById('slide_show_container2').style.position = "absolute";
		document.getElementById('slide_show_container2').style.zIndex = "8002";
		var bg = document.getElementById('trans_bg');
		bg.style.position = "fixed";
		bg.style.visibility = "visible";
		bg.style.zIndex = "0";
		bg.style.width = "100%";
		bg.style.height = "100%";
		return;
	}

	function hideTransBG(){
		document.getElementById('slide_show_container').style.display = "none";
		document.getElementById('slide_show_container').style.position = "absolute";
		document.getElementById('slide_show_container').style.zIndex = "-4";
		document.getElementById('slide_show_container2').style.display = "none";
		document.getElementById('slide_show_container2').style.position = "absolute";
		document.getElementById('slide_show_container2').style.zIndex = "-4";
		var bg = document.getElementById('trans_bg');
		bg.style.visibility = "hidden";
		bg.style.zIndex = "-2";
		bg.style.width = "0px";
		bg.style.height = "0px";
		return;
	}
	function findWindowSize(){
		var w = 0;
		var h = 0;

		//IE
		if(!window.innerWidth){
			//strict mode
			if(!(document.documentElement.clientWidth == 0)){
				w = document.documentElement.clientWidth;
				h = document.documentElement.clientHeight;
			}
			//quirks mode
			else{
				w = document.body.clientWidth;
				h = document.body.clientHeight;
			}
		}
		//w3c
		else{
			w = window.innerWidth;
			h = window.innerHeight;
		}
		return {width:w,height:h};
	}
//end slideshow functions

function toggleStyleDisplay(id){
	var current_display = document.getElementById(id).style.display;
	if(current_display=='none'){
		document.getElementById(id).style.display = 'inline';
	}else if(current_display=='inline'){
		document.getElementById(id).style.display = 'none';
	}
}
