var flag = 0;
var closeFlag = 0;
var focusName = 0;
var setFocusReferer = "";
var alert_title = " ";
var alert_button_text = " ";
var searchBoxText = "Search by title, author or ISBN";

//Dynamic images loaded in the array. 
var myPix = new Array("/alishia.jpg", "/mary.jpg", "/nuria.jpg", "/debrah.jpg", "/liz.jpg", "/megan.jpg");

document.onclick = keyhandler;

//Based on the flag value signin div will be visible or hidden. 
function keyhandler(e) {
	if (flag == 0) {
		document.getElementById("login_overlay").style.display = "none";	
	document.getElementById("loginwidget").style.display = "none";
	document.getElementById("overlay").style.display = "none";	
	}
	if (flag == 1) {
		document.getElementById("overlay").style.display = "block";
		document.getElementById("login_overlay").style.display = "block";
		document.getElementById("loginwidget").style.display = "block";
		flag = 0;
	}
	if (closeFlag == 1) {
		document.getElementById("login_overlay").style.display = "none";	
		document.getElementById("loginwidget").style.display = "none";
		document.getElementById("overlay").style.display = "none";	
		closeFlag = 0;
	}
}

// Show the signin block and set flag value as 1
function showSigninBlock() {
	flag = 1;
	document.getElementById("overlay").style.display = "block";
	document.getElementById("login_overlay").style.display = "block";
	document.getElementById("loginwidget").style.display = "block";	
}

//show the signin block
function showSigninBlockVisible() {
	document.getElementById("overlay").style.display = "block";
	document.getElementById("login_overlay").style.display = "block";
	document.getElementById("loginwidget").style.display = "block";
}
//Hide the signin block
function showSigninBlockInVisible() {
	document.getElementById("login_overlay").style.display = "none";	
	document.getElementById("loginwidget").style.display = "none";
	document.getElementById("overlay").style.display = "none";	
}
// close the signin block and set the close flag value as 1
function closeSigninBlockInVisible() {
	closeFlag = 1;
	document.getElementById("login_overlay").style.display = "none";	
	document.getElementById("loginwidget").style.display = "none";
	document.getElementById("overlay").style.display = "none";		
}

//trim the value for text box
String.prototype.trim = function () {
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
};

// Check the lenth value of string. if its string lenth is greater than the specified length return  flase 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("searchBox") != null) {
		document.getElementById("searchBox").focus();
	}
}

//on click of search box removed the default value
function clearBox() {
	if (document.getElementById("searchBox").value == searchBoxText) {
		document.getElementById("searchBox").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;
	var searchCategory = "basicSearch";
	var basicIndexSearch = document.getElementById("searchBox").value;
	search(url, basicIndexSearch, searchCategory);
}

// 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;
	basicIndexSearch = basicIndexSearch.trim();
	if (basicIndexSearch == searchBoxText) {
		basicIndexSearch = "";
		if (document.getElementById("searchBox") != null) {
			document.getElementById("searchBox").value = "";
		}		
	}
	if (basicIndexSearch == "") {
		alert("Please enter text.");
		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")) {
		return;
	}
	mObj = d.getElementsByTagName("body")[0].appendChild(d.createElement("div"));
	mObj.id = "modalContainer";
	mObj.style.height = d.documentElement.scrollHeight + "px";
	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";
	h1 = alertObj.appendChild(d.createElement("h1"));
	h1.appendChild(d.createTextNode(alert_title));
	msg = alertObj.appendChild(d.createElement("p"));
	msg.appendChild(d.createTextNode(txt));
	btn = alertObj.appendChild(d.createElement("a"));
	btn.id = "closeBtn";
	btn.appendChild(d.createTextNode(alert_button_text));
	btn.href = "#";
	btn.focus();
	btn.onclick = function () {
		removeCustomAlert();
		return false;
	};
	alertObj.style.display = "block";
}

// 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("searchBox") != null) {
			document.getElementById("searchBox").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();
		}
	}
}

// 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) != null){													
	   document.getElementById(setFocusRefererValue).focus();
	}
}

// To validate the user input for marketplace login detail
function loginSubmit() {	

	var login = document.getElementById("login").value;
	var passwd = document.getElementById("passwd").value;
	
	login = login.trim();
	passwd = passwd.trim();
	
	if (login == "") {
		focusName = 3;
		alert("Please enter User Name.");
		return (false);			
	} 
	if (passwd == "") {
		focusName = 5;
		alert("Please enter Password.");
		return (false);			
	} 
	
	
	return (true);	
	
	}
	
	// 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(basicSearch.value != "")
	{
		searchType = 'basic';
		advancedSearchSubmit(url,basicSearch.value,searchType);
	}
	else
	{
		searchType = 'multiisbn';
		if(multiSearch.value == "Enter multiple ISBNs separated by commas")
		{
			multiSearch.value="";
		}
		advancedSearchSubmit(url,multiSearch.value,searchType);
	}
	if(multiSearch.value == "")
	{
		multiSearch.value = "Enter multiple ISBNs separated by commas";
	}
}
function advancedSearchSubmit(url,fieldValue,searchType)
{
	var valid = true;
	var splChar = /[\{\}\(\)\!\~\^\%\"\*\?]+/;
	
	fieldValue = fieldValue.trim();
	if (fieldValue == "") 
	{
		alert("Please Enter  a Search Term");
		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

				var searchFormat = document.getElementById("searchFormat").value;
				var searchCopyright = document.getElementById("searchCopyright").value;
				var searchEdition = document.getElementById("searchEdition").value;
				
				if(searchCopyright != "All")
				{
					url+="&_search_feature="+searchCopyright;
				}
				if(searchEdition != "All")
				{
					url+="&_search_feature="+searchEdition;
				}
				url+="&fieldName="+searchFormat;

				// 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
				if(searchType != null){
					if(searchType == 'basic'){
						url+="&fromSearch=true";
					}else if(searchType == 'multiisbn'){
						url+="&multiISBN=true";
					}
				}
				//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";
}
//Used to convert the url from http to https
function convertHTTS(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;
}