$j(document).ready(function() {

	hashTable = new Hashtable();
	if (document.getElementById('viewinteractivedialog')) {
		
		if($j(".SearchListing")){$j(".SearchListing").addClass("hide");}
		if($j(".InventoryListing")){$j(".InventoryListing").addClass("hide");}
		
		var wd = $j("#toolkit-buttons-inner ul").outerWidth();
		if (wd < 1000) {
			$j("#toolkit-buttons-inner").css({
				width: wd + "px"
			});
		}
		
		if ($j("#showModelDialogOnStartup").val() == "true") {
			showDialog("selectmodel");
		}
		
		$j("#viewinteractive").bind("click", function(e) {
			$j("#specificationsdialog").css("display", "none");
			$j("#viewvideodialog").css("display", "none");
			$j("#viewinteractive").css("display", "block");
			$j('#viewinteractivedialog').show();
			$j.scrollTo('.Toolkit', 800, {
				easing: 'swing'
			});
		});
	}
  });

  function fetchTrimSpecs(id, index) {
	
	hashTable.clear();
	hashTable = getDivElements("hiddenParams");
	
	var selectedTrim = $j("#"+id).val();
	if (selectedTrim == null || selectedTrim == "undefined" 
		|| selectedTrim == "") {
		return false;
	}

	$j("[name=trim]").attr("value", selectedTrim.split("_")[0]);
	$j("[name=trimid]").attr("value", selectedTrim.split("_")[1]);
	
	var url = "toolkit.do";
	var params = "fetchType=widget&action=trimFetch&reqSrc=ajax";
	var keys = hashTable.keys();
	for (var i = 0 ;i < keys.length ; i ++) {
		var name = keys[i];
		var value = hashTable.get(keys[i]);

		params += "&" + name + "=" + $j("[name="+name+"]").val();
	}
	params += "&trimIndex="+index;
	
	doAjaxReq(url, params, "specificationsdialog");
  }
  
  function getTrimQuote(index, id) {
	
	selectedTrim = $j("#trims"+index).val();
	
	if (selectedTrim == null || selectedTrim == "" || selectedTrim == "undefined") {
		return false;
	}
	
	if (selectedTrim.indexOf("_") != -1) {
		$j("[name=trim]").attr("value", selectedTrim.split("_")[0]);
		$j("[name=trimid]").attr("value", selectedTrim.split("_")[1]);
	}
	
	showDialog(id);
  }

/**
 * For scrolling effect.
 */
$j(function() {
	$j.fn.scrollToTop = function() {
		$j(this).hide().removeAttr("href");
		if ($j(window).scrollTop() != "0") {
			$j(this).fadeIn("slow")
		}
		var scrollDiv = $j(this);
		$j(window).scroll(function() {
			if ($j(window).scrollTop() == "0") {
				$j(scrollDiv).fadeOut("slow")
			} else {
				$j(scrollDiv).fadeIn("slow")
			}
		});
		$j(this).click(function() {
			$j("html, body").animate( {
				scrollTop : 0
			}, "slow")
		})
	}
});

/**
 * Show/Hide div's.
 * 
 * 
 * @param eleId
 * @param divid
 * @return
 */

function showHideLayer(eleId, invDiv) {
	var img = $j("#" + eleId).children("img")[0];
	var imgpath = $j(img).attr('src');
	
	if ($j(invDiv).hasClass("hide")) {
		$j(invDiv).removeClass("hide")
		$j("#" + eleId)
				.html(
						'<img src="'+imgpath+'" border="0" /> <br/>');
		$j("#" + eleId).attr( {
			'title' : 'Hide Inventory'
		});
		$j.scrollTo('.toolkit-buttons', 800, { easing:'swing'} );
	} else {
		$j(invDiv).addClass("hide")
		$j("#" + eleId)
				.html(
						'<img src="'+imgpath+'" border="0" /> <br/>');
		$j("#" + eleId).attr( {
			'title' : 'View Inventory'
		});
		$j.scrollTo( '.Toolkit', 800, { easing:'swing'} );
	}
}

/**
 * Showing the dialog.
 * 
 */
function showDialog(objid) {
	var eTop, eLeft, eWidth, eHeight = 0;
	var aa = ($j(window).scrollTop() > $j("#" + objid).offset().top) ? true : false;
	var title ="";
	title = $j("#" + objid).attr("title");
	var offset = $j("#" + objid).offset();
	var inputEle = $j("#" + objid + "dialog form").children('input');
	for (i = 0; i < inputEle.length; i++) {
		if ($j(inputEle[i] + ':visible:first')) {
			break;
		}
	}

	eWidth = $j("#hid_" + objid + "_width").val();

	if (objid == 'selectmodel') {
		var winH = $j(window).height();
		var winW = $j(window).width();
		eTop = 50;
		// eWidth = 780;
		eHeight =200;
		eLeft = winW / 2 - eWidth / 2;
		
	} else if (objid == "getaquote" || objid == "getfinance") {

		eLeft = parseInt(offset.left) - 50;
		eHeight = 400;

		$j("[name=trim]").attr("value", "");
		$j("[name=trimid]").attr("value", "");
		
		var url = "toolkit.do";
		var pageNumber = $j("#hid_" + objid + "_id").val();
		var params = "fetchType=widget&pageNumber="+pageNumber;

		doAjaxReq(url, params, objid+"dialog");

	} else if (objid == "ebrochure") {

		eLeft = parseInt(offset.left) - 50;
		eHeight = 200;

		$j("[name=trim]").attr("value", "");
		$j("[name=trimid]").attr("value", "");
		
		var url = "toolkit.do";
		var pageNumber = $j("#hid_" + objid + "_id").val();
		var params = "fetchType=widget&pageNumber="+pageNumber;

		doAjaxReq(url, params, objid+"dialog");

	} else if (objid == "emailfriend") {
	
		eLeft = parseInt(offset.left) - 50;
		eHeight = 300;

		$j("[name=trim]").attr("value", "");
		$j("[name=trimid]").attr("value", "");
		
		var subject = $j("#companyName").val() + ": " + $j("[name=year]").val() + " " +
		$j("[name=make]").val() + " " + $j("[name=model]").val();
		
		var url = "toolkit.do";
		var pageNumber = $j("#hid_" + objid + "_id").val();
		var params = "fetchType=widget&pageNumber="+pageNumber+"&subject="+subject;

		doAjaxReq(url, params, objid+"dialog");
	} else if (objid == "trimquote") {
	
		eLeft = parseInt(offset.left) - 50;
		eHeight = 200;
		eWidth = $j("#hid_getaquote_width").val();

		var url = "toolkit.do";
		var pageNumber = $j("#hid_getaquote_id").val();
		var params = "fetchType=widget&pageNumber="+pageNumber;

		doAjaxReq(url, params, "getaquotedialog");

		title = $j("#getaquote").attr("title");

		objid = "getaquote";
	} else if (objid == "specifications") {
		eLeft = parseInt(offset.left) - 50;
		eHeight = 500;
		
		var url = "toolkit.do";
		var params = "fetchType=widget&action=specFetch&reqSrc=ajax&year="+$j("[name=year]").val()
			+ "&make="+$j("[name=make]").val()+"&makeid="+$j("[name=makeid]").val()+"&model="
			+$j("[name=model]").val()+"&modelid="+$j("[name=modelid]").val()+"&pageNumber="
			+$j("#pageNum").val()+"&widgetid="+$j("#widgetID").val();
		
		if ($j("#showspecsfile")) {
			params = params + "&showspecsfile="+$j("#showspecsfile").val();
		}
		
		doAjaxReq(url, params, "specificationsdialog");

		
		
		$j("#viewinteractivedialog").css("display", "none");
		$j("#viewvideodialog").css("display", "none");
		$j("#specificationsdialog").removeClass("hide");
		$j("#specificationsdialog").css("display", "block");
		return false;
	} else if (objid == "viewinventory") {
		if($j(".SearchListing")){showHideLayer(objid, ".SearchListing");}
		if($j(".InventoryListing")){showHideLayer(objid, ".InventoryListing");}

	} else if (objid == "viewvideo") {
		
		if ($j("#has_video").val() == "true") {
			var url = "toolkit.do";
			var params = "fetchType=widget&action=videoFetch&reqSrc=ajax&year="+
			$j("[name=year]").val()+"&make="+$j("[name=make]").val()+"&makeid="+
			$j("[name=makeid]").val()+"&model="+$j("[name=model]").val()+"&modelid="+
			$j("[name=modelid]").val()+"&pageNumber="+$j("#pageNum").val()+"&widgetid="+
			$j("#widgetID").val();
			
			doAjaxReq(url, params, "movieUi");
			
			$j("#viewinteractivedialog").css("display", "none");
			$j("#specificationsdialog").addClass("hide");
			$j("#specificationsdialog").css("display", "none");
			$j("#viewvideodialog").removeClass("hide");
			$j("#viewvideodialog").css("display", "block");
		}
		else{
			
		var cont = '<div id="errordialog"><p><span class="errorcont" style="float:left; margin:0 7px 20px 0;"></span>No video available for the selected model.</p></div>';
		$j('body').append(cont);
		$j("#errordialog").dialog( {
		bgiframe : false,
		autoOpen : false,
		width : eWidth,
		minHeight : eHeight,
		draggable : false,
		modal : true,
		drag : false,
		resizable : false,
		title : 'Information!',
		//title : '<img src="images/toolkit/icon_info.png" /> &nbsp; Information',
		show : 'drop',
		dialogClass: 'Toolkitdialog',
		buttons: {
				Ok: function() {
					$j(this).dialog('close');
				}
				},
		close : function(event,ui) {
 
 			}
	});

	$j("#errordialog").dialog('open');
	}
		return false;
	} else {
		eLeft = parseInt(offset.left) - 50;

		if (eWidth == null || eWidth == 0) {
			eWidth = 500;
		}
		eHeight = 300;
	}

	$j("#" + objid + "dialog").dialog( {
		bgiframe : false,
		autoOpen : false,
		width : eWidth+'px',
		minHeight : eHeight,
		draggable : false,
		modal : true,
		drag : false,
		resizable : false,
		title : title,
		show : 'drop',
		dialogClass: 'Toolkitdialog',
		buttons : {},
		close : function(event,ui) {
			$j(this).dialog('destroy');
				if ($j('#dob')) {
					 $j(ui).find('#dob').datepicker('destroy');
				}
 			}
	});

	$j("#" + objid + "dialog").dialog('open');
}

function generateIframe(name, src, width, height, target) {

$j(target).html('<iframe id="'+name+'" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="auto" />').dialog("open");
   $j("#"+name).attr("src",src);
   $j("#"+name).attr("width", width);
   $j("#"+name).attr("height", height);
}

function doAjaxReq(url, params, target) {

	if (target == null || target == "" || target == "undefined") {
		target = "commondialog";
	}

	$j.ajax( {
		type : 'POST',
		url : url,
		data : params,
		dataType : 'text/plain',
		// timeout:100000,
		beforeSend : function() {
		},
		success : function(result) {
			$j("#"+target).html(result);
			addSpecScript();
			
			// This condition will be executed if the 
			// specification file is selected to show.
			if ($j("#showspecsfile")) {
				$j('a.media').media();
			}
		},
		failure : function(result) {
			alert("failure Error in ajax.");
		},
		error : function(par1, par2, par3) {
			alert("Error in ajax..")
		}
	});
}

function submitAjaxForm(id) {

	if (id == "" || id == "undefined") {
		id = "common";
	}
	
	var url="forms.do";
	
	var hashTable = getFormElements(document.getElementById(id+"form"));
	
	if (hashTable != null && !hashTable.isEmpty()) {

		var params = "fetchType=widget";

		var keys = hashTable.keys();
		for (var i = 0 ;i < keys.length ; i ++) {
			var name = keys[i];
			var value = hashTable.get(keys[i]);

			if (name == "button" || name == "submit") {
				continue;
			}

			if (value == "undefined") {
				continue;
			}

			if (name == "year" || name == "make" || name == "model" || name == "trim" || 
					name=="makeid" || name=="modelid" || name=="trimid") {
				value = $j("#"+name+"_id").val();
			}
			
			params = params + "&" + name + "=" + value;
		}
		doAjaxReq(url, params, id+"dialog");
	}
	return false;
}

function getFormElements(frm) {
	
	if (!frm || !frm.elements) {
		return;
	}
	var elms = frm.elements;
	for (var i = 0, maxI = elms.length; i < maxI; ++i) {
		var elm = elms[i];
		hashTable.put(elm.name, elm.value);
	}
	return hashTable;
}

function getDivElements(div) {
	if (!div) {
		return;
	}
	div = typeof div === "string" ? document.getElementById(div) : div;
	var elms = div.getElementsByTagName("*");
	for (var i = 0, maxI = elms.length; i < maxI; ++i) {
		var elm = elms[i];
		switch (elm.type) {
			case "text":
			case "textarea":
			case "button":
			case "reset":
			case "submit":
			case "file":
			case "hidden":
			case "password":
			case "image":
			case "radio":
			case "checkbox":
			case "select-one":
			case "select-multiple":
			hashTable.put(elm.name, elm.value);
		}
	}
	return hashTable;
}


/*-------------------*/

$j(document).ready(function(){
	// Set specific variable to represent all iframe tags.
	if (document.getElementById('viewinteractivedialog')) {
		var iFrames = document.getElementsByTagName('iframe');
		
		// Resize heights.
		function iResize(){
			// Iterate through all iframes in the page.
			for (var i = 0, j = iFrames.length; i < j; i++) {
				// Set inline style to equal the body height of the iframed content.
				iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';
			}
		}
		
		// Check if browser is Safari or Opera.
		if ($j.browser.safari || $j.browser.opera) {
			// Start timer when loaded.
			$('iframe').load(function(){
				setTimeout(iResize, 0);
			});
			
			// Safari and Opera need a kick-start.
			for (var i = 0, j = iFrames.length; i < j; i++) {
				var iSource = iFrames[i].src;
				iFrames[i].src = '';
				iFrames[i].src = iSource;
			}
		}
		else {
			// For other good browsers.
			$j('iframe').load(function(){
				// Set inline style to equal the body height of the iframed content.
				this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
			});
		}
	}
}
);

function renderPDF () {
	hashTable = getDivElements("hiddenParams");
	
	var selectedTrim = $j("#"+id).val();
	if (selectedTrim == null || selectedTrim == "undefined" 
		|| selectedTrim == "") {
		return false;
	}
	
	$j("[name=trim]").attr("value", selectedTrim.split("_")[0]);
	$j("[name=trimid]").attr("value", selectedTrim.split("_")[1]);
	
}



/** FLASH OBJECT STARTS */

google.load("language", "1"); 

var colrName="";

function colorCall(param) {
var colrarr = param.split(" ")
colrName =""

for ( var i =0; i< colrarr.length; i++){
   google.language.translate(colrarr[i], "en", "fr", function(result) { 

  if (!result.error) { 
	colrName =colrName+result.translation+"  ";
   } 

 } ); 
if (i == colrarr.length-1)

{
 setTimeout("displayColorName()",500);
}
};
}
 function displayColorName () {

var MyElement = document.getElementById("clrName");

           MyElement.value = colrName;

 }
google.load("language", "1"); 

var colrName="";

 function colorCall(param) {

var colrarr = param.split(" ")
colrName =""
for ( var i =0; i< colrarr.length; i++){
   google.language.translate(colrarr[i], "en", "fr", function(result) { 
  if (!result.error) { 
            colrName =colrName+result.translation+"  ";
   } 

 } ); 
 if (i == colrarr.length-1)

 {
 	 setTimeout("displayColorName()",500);
 }

}; 

}
 function displayColorName () {
		var MyElement = document.getElementById("clrName");
           MyElement.value = colrName;
 }

function int360Call(url) {

	document.getElementById('viewinteractivedialog').style.display = 'block';
	document.getElementById('viewinteractivedialog').innerHTML = "<iframe src="
			+ url
			+ " frameborder='0' height='380' width='720' scrolling='no' ></iframe>";
}
function close360Interior(url) {
	document.getElementById('viewinteractivedialog').style.display = 'none';
}

/** FLASH OBJECT ENDS */

