var focusName = 0;
var setFocusReferer = "";
var alert_title = " ";
var alert_button_text = " ";
var searchBoxText = 'Search by title, author or ISBN';
var multiSearchText = 'Enter one or multiple ISBNs, separated by commas';
var basicSearchText = 'Enter title, author, or keyword here';

//Dynamic images loaded in the array. 
var myPix = new Array("/alishia.jpg", "/mary.jpg", "/nuria.jpg", "/debrah.jpg", "/liz.jpg", "/megan.jpg");

//trim the value for text box
String.prototype.trim = function () {
	return this.replace(/^\s+/, "").replace(/\s+$/, "");
};

// Check the length of string. if it is greater than the specified length return  false else 
// return true  
function validateLength(str, l) {
	if (str.length <= l) {
		return true;
	} else {
		return false;
	}
}

// Based on the event value hide the signin div and return false
function click(e) {
	if (document.all) {
		if (event.button == 2 || event.button == 3) {
			document.getElementById("login_overlay").style.display = "none";	
			document.getElementById("loginwidget").style.display = "none";
			document.getElementById("overlay").style.display = "none";	
			return false;
		}
	}
	if (document.layers) {
		if (e.which == 3) {
			document.getElementById("login_overlay").style.display = "none";	
			document.getElementById("loginwidget").style.display = "none";
			document.getElementById("overlay").style.display = "none";	
			return false;
		}
	}
}

//capture the event for mouse down 
if (document.layers) {
	document.captureEvents(Event.MOUSEDOWN);
}
document.onmousedown = click;

// set the focus for serach box
function setfocus() {
	if (document.getElementById("txtSearch") != null) {
		document.getElementById("txtSearch").focus();
	}
}

//on click of search box removed the default value
function clearBox() {
	if (document.getElementById("txtSearch").value == searchBoxText) {
		document.getElementById("txtSearch").value = "";
	}
}

// submit the login form if the Event key code is 13
function submitLoginForm(event) {
	if (event.keyCode == 13) {
		document.loginForm.submit();
	}
}
// Get the value for top serach text box value
function basicSearchSubmit(url) {
	focusName = 2;
	//CL MOD ICHUPGRD-850 PremM start
	var searchCategory = "basic";
	var basicIndexSearch = document.getElementById("txtSearch").value;
	if(searchBoxText == trimInput(basicIndexSearch)){
		basicIndexSearch = '';
	}
	advancedSearchSubmit(url, basicIndexSearch, searchCategory);
	//CL MOD ICHUPGRD-850 PremM end
}

// Get the basic search value
function basicIndexSearchSubmit(url) {
	focusName = 0;
	var searchCategory = "basicSearch";
	var basicIndexSearch = document.getElementById("basicSearchText").value;
	search(url, basicIndexSearch, searchCategory);
}
//Get the mutliisbn text box value
function multiIndexSearchSubmit(url) {
	focusName = 0;
	var searchCategory = "multiIsbnSearch";
	var basicIndexSearch = document.getElementById("multiSearchText").value;	
	search(url, basicIndexSearch, searchCategory);
}

//Used to replace a particular string
function replaceAll(OldString,FindString,ReplaceString) {
   var SearchIndex = 0;
   var NewString = ""; 
   while (OldString.indexOf(FindString,SearchIndex) != -1) {
   NewString += OldString.substring(SearchIndex,OldString.indexOf(FindString,SearchIndex));
   NewString += ReplaceString;
   SearchIndex = (OldString.indexOf(FindString,SearchIndex) + FindString.length); 
   }
   NewString += OldString.substring(SearchIndex,OldString.length);
   return NewString;
}

//Based on the basic search or mutltiisbn search display the error message
function search(url, basicIndexSearch, searchCategory) {	
	var valid = true;
	var splChar = /[\{\}\(\)\!\~\^\%\"\*\?]+/;
	basicIndexSearch = basicIndexSearch.trim();
	if (basicIndexSearch == searchBoxText) {
		basicIndexSearch = "";
		if (document.getElementById("txtSearch") != null) {
			document.getElementById("txtSearch").value = "";
		}		
	}
	if (basicIndexSearch == "") {
		alert("Please enter a valid search string.");
		valid = false;
	}else if(splChar.exec(basicIndexSearch)){
	
		var msg = "Your search term includes special character: ";
		var match = splChar.exec(basicIndexSearch);
		for (i = 0; i < match.length; i++) {
	      msg = msg + match[i]+".";
	    }
		alert(msg+ " Please remove it and try searching again!");
		valid = false;
	} else {
		if (searchCategory != "" && searchCategory == "basicSearch" && !validateLength(basicIndexSearch, 150)) {
			alert("Please enter a search string less than 150 characters long.");
			valid = false;
		} else {
			var listStr = basicIndexSearch.split(" ");
			for (var i = 0; i < listStr.length; i++) {
				if (listStr[i].charAt(0) == "*" || listStr[i].charAt(0) == "?") {
					alert("Search word cannot start with \"*\" or \"?\".");
					valid = false;
				}
			}
			if (valid == true) {
				basicIndexSearch = replaceAll(basicIndexSearch,"\n","%20");	
				basicIndexSearch = replaceAll(basicIndexSearch,",","%20");
				var openPage = url + basicIndexSearch;
				window.location.href = openPage;
			}
		}
	}
}


if (document.getElementById) {
	window.alert = function (txt) {
		createCustomAlert(txt);
	};
}

// create the custom alert box 
function createCustomAlert(txt) {
	d = document;
		if (d.getElementById("modalContainer")) {
			var msg = d.getElementById("alertMsg");
			msg.innerHTML += '<br/>'+txt;
			return;
		}
	mObj = d.getElementsByTagName("body")[0].appendChild(d.createElement("div"));
	mObj.id = "modalContainer";
	mObj.style.height = d.documentElement.scrollHeight + "px";
	mObj.style.display = "block";
	alertObj = mObj.appendChild(d.createElement("div"));
	alertObj.id = "alertBox";
	if (d.all && !window.opera) {
		alertObj.style.top = document.documentElement.scrollTop + "px";
	}
	alertObj.style.left = (d.documentElement.scrollWidth - alertObj.offsetWidth) / 2 + "px";
	alertObj.style.visiblity = "visible";
	alertObj.style.display = "block";
	areaObj = alertObj.appendChild(d.createElement("div"));
	areaObj.id="alertText";
	areaObj.style.display="block";
	msg = areaObj.appendChild(d.createElement("p"));
	msg.id="alertMsg";
	msg.appendChild(d.createTextNode(txt));
	btn = areaObj.appendChild(d.createElement("a"));
	btn.id = "closeBtn";
	btn.appendChild(d.createTextNode(""));
	btn.href = "#";
	btn.focus();
	btn.onclick = function () {
		removeCustomAlert();
		return false;
	};
	mObj.onclick = function () {
		removeCustomAlert();
		return false;
	}; 
}

// Remove the custom alert box
function removeCustomAlert() {
	document.getElementsByTagName("body")[0].removeChild(document.getElementById("modalContainer"));
	setfocusForRefererId(setFocusReferer);
	setFocusForTextBox(focusName);
}

// Set the foucs to based on the focus value for basic text box,mustiisbn text box and search Box
function setFocusForTextBox(focusValue) {
	if (focusValue == "0") {
		if (document.getElementById("basicSearchText") != null) {
			document.getElementById("basicSearchText").focus();
		}
	}
	if (focusValue == "1") {
		if (document.getElementById("multiSearchText") != null) {
			document.getElementById("multiSearchText").focus();
		}
	}
	if (focusValue == "2") {
		if (document.getElementById("txtSearch") != null) {
			document.getElementById("txtSearch").focus();
		}
	}
	if (focusValue == "3") {
		if (document.getElementById("login") != null) {
			document.getElementById("login").focus();
		}
	}
	if (focusValue == "4") {
		if (document.getElementById("myStuffUserName") != null) {
			document.getElementById("myStuffUserName").focus();
		}
	}
	if (focusValue == "5") {
		if (document.getElementById("passwd") != null) {
			document.getElementById("passwd").focus();
		}
	}
	if (focusValue == "6") {
		if (document.getElementById("userName") != null) {
			document.getElementById("userName").focus();
		}
	}
	if (focusValue == "7") {
		if (document.getElementById("password") != null) {
			document.getElementById("password").focus();
		}
	}
	if (focusValue == "8") {
		if (document.getElementById("RedeemInput") != null) {
			document.getElementById("RedeemInput").focus();
		}
	}
}

// Dynamically loading the image based on the random number Id  value 0 to 5	
var visibleId = 0;
var randomImageId = Math.round(5 * Math.random());

function showImageName(imagePath) {
		document.write('<img  id="changeImg" src="'+imagePath+myPix[randomImageId]+'">');
}	
	
function loadText() {
	for (visibleId = 0; visibleId < 6; visibleId++) {
		if (document.getElementById("imageDisplay" + randomImageId) != null) {
			document.getElementById("imageDisplay" + randomImageId).style.visibility = "visible";
			if (visibleId != randomImageId) {
				document.getElementById("imageDisplay" + visibleId).style.visibility = "hidden";
			}
		}	
	}
}	

	
// Loading the picture based on the parameter value 0 to 5
function showImages(showPic,imagePath) {
	if (document.images) {
		document.getElementById("imageDisplay" + showPic).style.visibility = "visible";
		for (visibleId = 0; visibleId < 6; visibleId++) {
			if (visibleId != showPic) {
				document.getElementById("imageDisplay" + visibleId).style.visibility = "hidden";
			}
		}
		document.getElementById("changeImg").src = imagePath + myPix[showPic];
	}
}

//Function used to display different images on mouseout,mouseover
function swapImage(id, image,imagePath) { 
  var imagesrc = imagePath +"/" + image;   
  document.getElementById(id).src = imagesrc;
}
function restore(id, image,imagePath) {
  var imagesrc = imagePath +"/" + image; 
  document.getElementById(id).src = imagesrc;
}

// set the focus for referer box
function setfocusForRefererId(setFocusRefererValue) {			    					
		if(document.getElementById(setFocusRefererValue)){													
	   document.getElementById(setFocusRefererValue).focus();
	}
}

// To validate the user input for marketplace login detail
function loginSubmit() {	
	var form = document.signInForm;
	var login = form.userLogin.value;
	var passwd = form.passwd.value;	
	login = login.trim();
	passwd = passwd.trim();
	
	if (login == "") {
		focusName = 3;
		alert("Please enter User Name.");
		return;			
	} 
	if (passwd == "") {
		focusName = 5;
		alert("Please enter Password.");
		return;			
	}	
	form.submit();	
}
	
	// To validate the user input for marketplace login detail
function loginCommonSubmit() {	

	var userName = document.getElementById("userName").value;
	var password = document.getElementById("password").value;	
	userName = userName.trim();
	password = password.trim();
	
	if (userName == "") {
		focusName = 6;
		alert("Please enter User Name.");
		return (false);			
	} 
	if (password == "") {
		focusName = 7;
		alert("Please enter Password.");
		return (false);			
	} 
	
	return (true);	
	
	}
	
	// THOM MOD ICHMKT-426 PremM start
function searchSubmit(url)
{
	var multiSearch = document.getElementById('multiSearchText');
	var basicSearch = document.getElementById('basicSearchText');
	var searchType;
	if(trimInput(basicSearch.value) && trimInput(basicSearch.value) != basicSearchText)
	{
		searchType = 'basic';
		advancedSearchSubmit(url,basicSearch.value,searchType);
		focusName="0";
	}
	else
	{
		searchType = 'multiisbn';
		focusName="1";
		if(!trimInput(multiSearch.value) || trimInput(multiSearch.value) == multiSearchText)
		{
			multiSearch.value="";
			focusName="0";
		}
		advancedSearchSubmit(url,multiSearch.value,searchType);
	}
	if(multiSearch.value == "")
	{
		multiSearch.value = multiSearchText;
	}
}
function advancedSearchSubmit(url,fieldValue,searchType)
{
	var valid = true;
	var splChar = /[\{\}\(\)\!\~\^\%\"\*\?]+/;
	fieldValue = fieldValue.trim();
	if (!fieldValue) 
	{
		alert("Your search does not contain any search terms, please enter a search term into the search box and re-issue your search.");
		valid = false;
	}else if(splChar.exec(fieldValue)){
	
		var msg = "Your search term includes special character: ";
		var match = splChar.exec(fieldValue);
		for (i = 0; i < match.length; i++) {
	      msg = msg + match[i]+".";
	    }
		alert(msg+ " Please remove it and try searching again!");
		valid = false;
	} 
	else 
	{
		if (!validateLength(fieldValue, 150)) 
		{
			alert("Please enter a search string less than 150 characters long.");
			valid = false;
		} 
		else 
		{
			var listStr = fieldValue.split(" ");
			for (var i = 0; i < listStr.length; i++) 
			{
				if (listStr[i].charAt(0) == "*" || listStr[i].charAt(0) == "?") 
				{
					alert("Search word cannot start with \"*\" or \"?\".");
					valid = false;
				}
			}
			if (valid == true) 
			{
				// THOM MOD ICHMKT-480 Ying start
				//fieldValue = replaceAll(fieldValue,"\n","%20");	
				//fieldValue = replaceAll(fieldValue,",","%20");
				//fieldValue = replaceAll(fieldValue,"\n"," ");	
				//fieldValue = replaceAll(fieldValue,",","%2c");
				// THOM MOD ICHMKT-480 Ying end

				//CL MOD ICHUPGRD-850 PremM start
				var searchFormat = document.getElementById("searchFormat");
				if(searchFormat && searchFormat.value){
					url+="&fieldName="+searchFormat.value;
				}
				
				var searchCopyright = document.getElementById("searchCopyright");
				if(searchCopyright && searchCopyright.value){
					if(searchCopyright.value != "All"){
						url+="&_search_feature="+searchCopyright.value;
					}	
				}
				
				var searchEdition = document.getElementById("searchEdition");
				if(searchEdition && searchEdition.value){				
					if(searchEdition.value != "All"){
						url+="&_search_feature="+searchEdition.value;
					}
				}
				//CL MOD ICHUPGRD-850 PremM end
				// THOM MOD ICHMKT-480 Ying start
				fieldValue = encodeURIComponent(fieldValue);
				fieldValue = fieldValue.replace("+", "%2B");
				fieldValue = fieldValue.replace("/", "%2F");
				url+="&fieldValue="+fieldValue; 
				// THOM MOD ICHMKT-480 Ying end
				//THOM MOD ICHCOMM-704 AKumar START
				
				//CL MOD ICHUPGRD-850 PremM start
				if(searchType == 'basic'){
					url+="&fromSearch=true";
				}
				/*if(searchType != null){
					if(searchType == 'basic'){
						url+="&fromSearch=true";
					}else if(searchType == 'multiisbn'){
						url+="&multiISBN=true";
					}
				}*/
				//CL MOD ICHUPGRD-850 PremM end
				//THOM MOD ICHCOMM-704 AKumar START

				window.location.href = url;
			}
		}
	}
}
	// THOM MOD ICHMKT-426 PremM end
function show_Popup(evt, ID) {
    var x = evt.clientX - 25;
    var y = evt.clientY;
    
    //-- hide any existing pop-ups
    document.getElementById("printBookCallout").style.display = "none";
    document.getElementById("eBookCallout").style.display = "none";
    document.getElementById("eChapterCallout").style.display = "none";
    document.getElementById("AudioCallout").style.display = "none";
    
    //show clicked pop-up and set position
    document.getElementById(ID).style.display = "block";
    document.getElementById(ID).style.left = x + "px";
    document.getElementById(ID).style.top = y + "px";
    
}

function hide_Popup(ID) {
   
    document.getElementById(ID).style.display = "none";
    
}

function loginOverLay_Show() {
 	document.getElementById("overlay").style.display = "block";
	document.getElementById("login_overlay").style.display = "block";
	document.getElementById("loginwidget").style.display = "block";
	document.getElementById("userLogin").focus();
}

function loginOverLay_hide() {
	document.getElementById("login_overlay").style.display = "none";
	document.getElementById("loginwidget").style.display = "none";
	document.getElementById("overlay").style.display = "none";
}

function trimInput(input){
	if(input){
		return input.trim();
	}else{
		return null;
	}	 
}
//on click of search box removed the default value
function clearSearchBox() {
	if ((document.getElementById("txtSearch").value).trim() == searchBoxText) {
		document.getElementById("txtSearch").value = "";
	}
}

//Used to convert the url from http to https
function convertHTTPS(url)
{	
	url = url.replace('8095','8096');//ports used on dev. No effect on staging/prod.
	url = url.replace(/http:/i,"https:");
	window.location.href = url;
}

function searchSubmitNew(url)
{
	var multiSearch = document.getElementById('multiSearchText');
	var multiSearchValue = trimInput(multiSearch.value);
	var searchType = 'multiisbn';
	focusName="1";
	if(!multiSearchValue || multiSearchValue == multiSearchText){
		multiSearchValue = "";
	}
	advancedSearchSubmit(url,multiSearchValue,searchType);
	if(!multiSearchValue){
		multiSearch.value = multiSearchText;
	}
}

function showDivPanel(id){
	document.getElementById(id).style.display = "block";
}

function hideDivPanel(id){
	document.getElementById(id).style.display = "none";
} 