//-------------------------------------------------//
// INITIALIZE AND ONLOAD CALLS
//-------------------------------------------------//

// setup AJAX managers
var state_mngr = new sugar.ServerManager("/global_files/remote_scripts/ssc_state_mngr.php");
var statedd_mngr = new sugar.ServerManager("/global_files/remote_scripts/state_dropdown_mngr.php");
var report_mngr = new sugar.ServerManager("/global_files/remote_scripts/ssc_report_school_mngr_mngr.php");
state_mngr.startFunct = function(){$("states").disabled = true;loading(1,'states');}
state_mngr.endFunct = function(){$("states").disabled = false;loading(0);}

var search_mngr = new sugar.ServerManager("/global_files/remote_scripts/state_search_mngr.php");
search_mngr.startFunct = function(){$("states").disabled = true;loading(1,'states');}
search_mngr.endFunct = function(){$("states").disabled = false;loading(0);}

// onload intializer
window.onload = function(){
	// XHTML sweeten entire document
	sugar.sweeten(document.body,true);
}

//-------------------------------------------------//
// AJAX FUNCTIONS
//-------------------------------------------------//

function stateDrill(state){
	var letter = arguments[1]?arguments[1]:false;
	var city = arguments[2]?arguments[2]:false;
	var school = arguments[3]?arguments[3]:false;
	var pass = "";
	var pairs = [];
	var ddpairs = [];
		
	if(state == "nulldrop" || city == "nulldrop" || school == "nulldrop"){return false;}
	if(state == -1){
		state_mngr.initPairs = pairs;
		statedd_mngr.initPairs = ddpairs;
		$("citydd").disabled = true;
		$("schooldd").disabled = true;
		$("statedd").value = "AL";
		$("states_pass").style.display = "none";
		sugar.yonder(state_mngr,function(results){$("states").innerHTML = results;});
	} else {
		if(typeof(window.pageXOffset) == "number"){
			$('statenav').style.height = "265px";
			$('states').style.height = "145px";
		} else {
			$('statenav').style.height = "265px";
			$('states').style.height = "175px";
		}
		
		if(letter && !city && !school){
			pairs['state'] = state;
			pairs['letter'] = letter;
			$("schooldd").disabled = true;
			state_mngr.initPairs = pairs;
			pass = '<a href="/schoolsportswearcreator/'+state.toLowerCase()+'/design.php">Click Here for '+state+' Sportswear!</a>';
		} else if(city && !school){
			pairs['state'] = state;
			pairs['letter'] = letter;
			pairs['city'] = city;
			ddpairs['state'] = state;
			ddpairs['city'] = city;
			state_mngr.initPairs = pairs;
			statedd_mngr.initPairs = ddpairs;
			$("statedd").value = state;
			$("citydd").value = city;
			city = city.replace(/ /g,"_");
			pass = '<a href="/schoolsportswearcreator/'+state.toLowerCase()+'/'+city.toLowerCase()+'/design.php">Click Here for '+ucwords(city)+', '+state+' Sportswear!</a>';
			sugar.yonder(statedd_mngr,function(results){
				$("school_dddiv").innerHTML = results;
			});
		} else if(school){
			city = city.replace(/ /g,"_");
			school = school.replace(/ /g,"_");
			city = escape(stripslashes(unescape(city)));
			school = escape(stripslashes(unescape(school)));
			window.location = "/schoolsportswearcreator/"+state.toLowerCase()+"/"+city.toLowerCase()+"/"+school.toLowerCase()+"/"+"design.php";
		} else {
			pairs['state'] = state;
			ddpairs['state'] = state;
			state_mngr.initPairs = pairs;
			statedd_mngr.initPairs = ddpairs;
			$("statedd").value = state;
			pass = '<a href="/schoolsportswearcreator/'+state.toLowerCase()+'/design.php">Click Here for '+state+' Sportswear!</a>';
			sugar.yonder(statedd_mngr,function(results){
				$("schooldd").disabled = true;
				$("city_dddiv").innerHTML = results;
			});
		}
		sugar.yonder(state_mngr,function(results){
			$("states").innerHTML = results;
			$("states_pass").innerHTML = pass;
			$("states_pass").style.display = "block";
		});
	}
}

function search(term){
	var pairs = [];
	term = term.replace(/[^a-zA-Z0-9s]/,' ');
	var terms = term.split(" ");
	term = '';
	for(key in terms){
		if(terms[key]){
			term += trim(terms[key])+' ';
		}
	}
	pairs['query'] = escape(trim(term));
	search_mngr.initPairs = pairs;
	$("states_pass").style.display = "none";
	sugar.yonder(search_mngr,function(results){
		if(typeof(window.pageXOffset) == "number"){
			$('statenav').style.height = "265px";
			$('states').style.height = "145px";
		} else {
			$('statenav').style.height = "265px";
			$('states').style.height = "175px";
		}
		$("states").innerHTML = results; 
	});
}

function sendSearch(e){
	if(window.event){
		num = e.keyCode;
	} else if(e.which){
		num = w.which;
	} else {
		return false;
	}
	
	if(num == 13){
		search($('searchbox').value);
		return false;
	}
}

function closeOverlay(){
	// turn off overlay
	$("overlay").style.display = "none";
	$("overlay_iframe").style.display = "none";
	
	// widgets to close
	if($("reportdiv")){$("reportdiv").style.display = "none"};
	if($("template_window")){$("template_window").style.display = "none"};
	if($("signup_popup")){$("signup_popup").style.display = "none"};
}

function signUp(){
	if(typeof(window.pageYOffset) == 'number'){
		var top = window.pageYOffset+50;
		var left = Math.ceil(window.innerWidth/2)-360;
	} else {
		var top = document.body.scrollTop+50;
		var left = Math.ceil(document.body.clientWidth/2)-387;
	}
	$("overlay").style.display = "block";
	$("overlay_iframe").style.display = "block";
	$("signupform").style.display = "block";
	$("signupthankyou").style.display = "none";
	$("signup_popup").style.display = "block";
	$("signup_popup").style.top = top+"px";
	$("signup_popup").style.left = left+"px";
	if($("signupemail_source").value.indexOf("@") != -1){
		$("signupemail").value = $("signupemail_source").value;
	}
	$('signupemail').focus();
}

function submitSignup(){
	$("signupbutton").disabled = true;
	if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($("signupemail").value))){
		alert("Oops! Invalid email address!");
		$("signupbutton").disabled = false;
		return false;
	} else {
		var newsletter_mngr = new sugar.ServerManager("/global_files/remote_scripts/newsletter_signup_mngr.php");
		newsletter_mngr.startFunct = function(){loading(1,'signup_popup');}
		newsletter_mngr.endFunct = function(){loading(0);}
		
		var pairs = [];
		pairs['email'] = $("signupemail").value;
		pairs['fname'] = $("signup_fn").value;
		pairs['lname'] = $("signup_ln").value;
		pairs['cname'] = $("signup_cn").value;
		pairs['tname'] = $("signup_tn").value;
		pairs['addr'] = $("signupaddress").value;
		pairs['city'] = $("signupcity").value;
		pairs['state'] = $("signupstate").value;
		pairs['zip'] = $("signupzip").value;
		pairs['su_logo'] = $("signup_logosports").checked;
		pairs['su_team'] = $("signup_teamsports").checked;
		pairs['su_work'] = $("signup_workwear").checked;
		pairs['su_promo'] = $("signup_promoproducts").checked;
		pairs['su_golf'] = $("signup_golfwear").checked;
		pairs['su_sign'] = $("signup_signsbanners").checked;
		pairs['su_gift'] = $("signup_logogifts").checked;
		newsletter_mngr.initPairs = pairs;
		
		sugar.yonder(newsletter_mngr,function(results){
			$('signupform').style.display = "none";
			$('signupthankyou').style.display = "block";
			$("signupbutton").disabled = false;
		});
	}
}

//-------------------------------------------------//
// MISC / MULTI-PURPOSE FUNCTIONS
//-------------------------------------------------//

//getElementById shortcut stolen from Prototype.js (http://prototype.conio.net/)
function $(){
	var elements = new Array();
	for(var i=0;i<arguments.length;i++){
		var element = arguments[i];
		if(typeof element == 'string'){
			element = document.getElementById(element);
		}
		if(arguments.length == 1){
			return element;
		}
		elements.push(element);
	}
	return elements;
}

// finds an elements true top/left offset position 
function findPos(elem){
	var obj = $(elem); 
	var left = 0;
	var top = 0;
	if(obj.offsetParent){
		left = obj.offsetLeft;
		top = obj.offsetTop;
		while(obj = obj.offsetParent){
			left += obj.offsetLeft;
			top += obj.offsetTop;
		}
	}
	return [left,top];
}

// loading message toggler
function loading(tog){
	var loader = $("loading");
	if(tog){
		var loadpos = arguments[1]?arguments[1]:false;
		if(loadpos){
			var pos = findPos(loadpos);
			var left = pos[0]+10;
			var top = pos[1]+10;
			loader.style.top = top+"px";
			loader.style.left = left+"px";
		}
		loader.style.display = "block";
	} else {
		loader.style.display = "none";
	}
}

// onload builder
function addLoadEvent(func) {
	var oldonload = window.onload;
	if(typeof(window.onload) != 'function'){
		window.onload = func;
	} else {
		window.onload = function(){
			if(oldonload){
				oldonload();
			}
			func();
		}
	}
}

// string functions
function ucfirst(string){
	var first = string.substring(0,1);
	var ucf_str = first.toUpperCase();
	ucf_str += string.substring(1);
	return ucf_str;
}
function ucwords(string){
	var words = string.split("_");
	var new_string = "";
	for(var i = 0;i <= words.length-1;i++){
		if(words[i]){new_string += ucfirst(words[i])+" ";}
	}
	new_string = trim(new_string).replace(/\+/g," ");
	return new_string;
}
function stripslashes(str) {
	str = str.replace(/\\'/g,'\'');
	str = str.replace(/\\"/g,'"');
	str = str.replace(/\\\\/g,'\\');
	str = str.replace(/\\0/g,'\0');
	return str;
}
function trim(str){return str.replace(/^\s+|\s+$/g,"");}
function ltrim(str){return str.replace(/^\s+/,"");}
function rtrim(str){return str.replace(/\s+$/,"");}
