/**
 * @author Scott Clarke
 */

window.common = {
	
	contextPath : "",
	cdnPath : "",
	version: 0.1,
	loadedLibs: [],
	showDebug : false,
	userCountryCode : '',
	userRegionCode : '',
	sessionActive : false,
	appVersion : "",
	locale : "en_US",
	enviroment : "",
	
	init : function() {
		common.load('util.jsonClass', 1, null);
		common.load('util.commonFunctions', 1, null);
	},
	
	load : function(requiredScript, version, params, libType, minified) {
		if (inArray(this.loadedLibs, requiredScript) < 0) {
			if(typeof libType == 'undefined') {
				libType = "js";
			}
			var scriptArr = requiredScript.split('.');
			var paramString = "";
			var paramCount = 0;
			var scriptSrc = this.cdnPath + '/js/';

			if(libType !== "js") {
				scriptSrc = this.cdnPath + '/js/';
			}
			//build param string
			if(params !== null) {
				paramCount = params.length;
			}
			for(i=0; i<paramCount; i=i+1) {
				var currParam = params[i];
				if(i !== 0) { paramString += "&"; } else {  paramString = "?" }
				paramString += currParam[0] + "=" + currParam[1];
			}
				
			//build script tag		
			//TODO: make this support more then 2 folders deep so we can do jquery cleanly
			var newScript = document.createElement("script");
			var path = "";
			var arrLen = scriptArr.length;
			
			for(i=0; i < arrLen; i=i+1) {
				path += scriptArr[i] + '/'; 
			}
			
			if (version == 0) {
				scriptSrc += path  + '/' + scriptArr[arrLen-1] + '.' + libType;
			} else {
				scriptSrc += path  + ( (version == "test") ? '' : 'v' ) + version + '/' + scriptArr[arrLen-1] + '.' + libType;
			}
			if(paramString !== "") {
				scriptSrc += paramString + "&v=" + this.appVersion;
			} else {
				scriptSrc += "?v=" + this.appVersion;
			}
			document.write('<script type="text/javascript" src="'+ scriptSrc + '"></script>');
			this.loadedLibs.push(requiredScript);
		}
	},
	
	parseJsonError : function(messageTargetObj, dataNode) {
		errorData = dataNode.jsonError;
		messageTargetObj.innerHTML = "<div class='errorText'><b>ERROR:</b>" + errorData.message + "</div>";
		messageTargetObj.innerHTML += "<div class='errorText'><b>ERROR CODE:</b>" + errorData.code + "</div>";
		messageTargetObj.innerHTML += "<div class='errorText'><b>ERROR REDIR URL:</b>" + errorData.url + "</div>";
	}	
};

// this is needed here for the include function
function inArray(arrayList,findString) {
	al=arrayList.length;
    for (var i = 0; i < al; i++) {
      if (arrayList[i] == findString) { return i; }
	}
    return -1;
}

function baseDomainString(){
  e = document.domain.split(/\./);
  if(e.length > 1) {
    return("domain=" + e[e.length-2] + "." +  e[e.length-1]) + ";"  ;
  }else{
    return("");
  }
}





