var gTid_ScrollIpodIcon = '';
var gTid_ModelList = '';
var gFirefox = 0;
var gSafariBol = false;
var giPodIconScrollLeftMax = 0;
var gAjaxReqWaitTime = 500;	// ms
var arrIpodModels = new Array();
var arrIpodIconWidths = new Array();

$(function(){
	$("#iniIpod").change(function(e){ updateDisplayOfSearchResult(); scrollIpodIcon(); return false; });
	$("#ini").change(function(e){ updateDisplayOfModelNameList(); updateDisplayOfRelatedLink(); return false; });
	$("#model").change(function(e){ updateDisplayOfSearchResult(); updateDisplayOfRelatedLink(); return false; });
	$("#resetIpod").click(function(e){ resetYourIpod(); return false; });
	$("#resetModel").click(function(e){ resetYourModel(); return false; });
	$("ul#languageLink li a").click(function (){ var strLinkURL = $(this).attr("href"); chgLang(strLinkURL.match(/lang=([^\&]+)/)[1]); return false; });
	$("table.ipod tr td").hover(function(){ $(this).css("cursor","pointer"); },function(){ $(this).css("cursor","default"); });
	$("table.ipod tr td").click(function (){ changeIpod($(this).attr("name")) });
});

$(document).ready(function(){
	locationRemarkInfo();
	var browser = navigator.userAgent.toLowerCase();
	if (browser.indexOf("safari") != -1)  { gsafariBol = true; }
	for(var i=2;i<4;i++){
		if (browser.indexOf("firefox/"+i) != -1) { gFirefox = i; break; }
	}
	if ( $(".Select_iPod3b").css('direction') == "rtl" && ( gFirefox || gSafariBol) ) {
		$(".Select_iPod3b").css('overflow', 'auto');
	}
	$("#iniIpod").change();
});

function updateDisplayOfModelNameList() {
	if (gTid_ModelList != '') {
		clearTimeout(gTid_ModelList);
	}
	gTid_ModelList = setTimeout("updateDisplayOfModelNameListProc()", gAjaxReqWaitTime);
}

function updateDisplayOfModelNameListProc() {
	$.ajax({
		dataType: "json",
		data: {
			"mode":"getModelList",
			"ini": $("#ini").val()
		},
		cache: false,
		async: true,
		url: "index.php",
		success: function (modelLists) {
			createModelNameListBox(modelLists);
		},
		error: function(XMLHttpRequest, textStatus, errorThrown){
			ajaxErrorFunction( textStatus );
		}
	});
}
function createModelNameListBox( modelLists ) {
	var targetElement = $("#model");
	$(targetElement).hide();
	$(targetElement).empty();
	$.each( modelLists, function() {
		var textNode = document.createTextNode(this);
		$("<option/>")
		.attr("value", this)
		.append( textNode )
		.appendTo( targetElement );
	});
	$(targetElement).show();
}
function updateDisplayOfSearchResult() {
	if ( $("#iniIpod").val() == "" || $("#model").val() == "") {
		displayScreen(false);
	} else {
		$(".modeltable").hide();
		$.ajax({
			dataType: "json",
			data: {
				"mode":"search",
				"iniIpod": $("#iniIpod").val(),
				"model": $("#model").val()
			},
			cache: false,
			async: true,
			url: "index.php",
			success: function (searchResults) {
				var bEableResult = false;

				$("div.modeltable").find("div.interface_adaptor").hide();
				$("div.function_list").find("td").hide();
				$.each( searchResults.adaptors, function(i, adaptor) {
					if (adaptor.compatibility) {
						var targetAdaptorBox = $("#"+adaptor.name);
						$(targetAdaptorBox).show();
						var bRemarkEnable = false;
						$(targetAdaptorBox).find(".remark").hide();
						$.each(adaptor.remark, function() {
							if ( this != "" ) {
								$(targetAdaptorBox).find("p.remark_"+this).show();
								bRemarkEnable = true;
							}
						})
						if (bRemarkEnable) {
							$(targetAdaptorBox).find("h3.remark_title").show();
						}
						$(targetAdaptorBox).find("span.extend_info").hide();
						$.each(adaptor.extend, function() {
							if ( this != "" ) {
								$("span.extend_"+this.name.toLowerCase()+"_"+this.value.toLowerCase()).show();
							}
						})
						bEableResult = true;
					}
				})
				var functionListRemarkBox = $("div.function_list").children("div.remark_info");
				$(functionListRemarkBox).children("p.remark").hide();
				$(functionListRemarkBox).children("p.remark_o200").show();
				$(functionListRemarkBox).show();
				$.each( searchResults.functions, function(adaptorName, functionInfo) {
					var rowName = adaptorName == 'KCA-iP500' ? adaptorName : 'iPodCable';
					$.each($("div.function_list").find("td."+rowName), function(i, cellObj) {
						$(cellObj).show();
						var listLineName = $(cellObj).parent().attr("name");
						if (listLineName == "Adaptor name")
						{
							$(cellObj).children().hide();
							var arrAdaptorName = adaptorName.split(",");
							for (var i=0; i<arrAdaptorName.length; i++)
							{
								$(cellObj).children("."+arrAdaptorName[i]).show();
							}
						}
						else if (listLineName != "")
						{
							$(cellObj).children().remove();
							$("div.function_info_item > *").clone().appendTo(cellObj);
							var stat = "nosupport";
							$.each( functionInfo, function(func_name, func_info) {
								if (func_name == listLineName)
								{
									if ( func_info.supported ) stat = "support";
									if (func_info.remarks.length > 0)
									{
										$(cellObj).children("span.func_remark").show();
										$.each(func_info.remarks, function() {
											$(functionListRemarkBox).children("p.remark_"+this).show();
										})
//										$(functionListRemarkBox).show();
									}
								}
							})
							$(cellObj).children("span.func_"+stat).show();
						}
					})
				})
				$("div.modeltable").children("div.searchResult").hide();
				if (bEableResult) {
					$("div.modeltable").children("div.adapter_matches").show();
				} else {
					$("div.modeltable").children("div.adapter_no_match").show();
				}
				displayScreen(true);
			},
			error: function(XMLHttpRequest, textStatus, errorThrown){
				ajaxErrorFunction( textStatus );
			}
		});
	}
}

function resetYourIpod() {
	$("#iniIpod").val("");
	$("#iniIpod").change();
	updateDisplayOfRelatedLink();
}
function resetYourModel() {
	$("#ini").val("");
	$("#model").val("");
	createModelNameListBox([""]);
	updateDisplayOfRelatedLink();
	displayScreen(false);
}
function changeIpod(ipodName) {
	$("#iniIpod").val(ipodName);
	updateDisplayOfSearchResult();
}
function displayScreen(bSearchResult) {
	if (bSearchResult) {
		window.focus();	// for IE6
		$(".SelectBox2").hide();
		$(".yourIpod").text($("#iniIpod").val());
		$(".yourModel").text($("#model").val());
		$(".list_ipod").show();
		$(".modeltable").show();
	} else {
		$(".SelectBox2").show();
		updateDisplayOfScreen();
		$(".list_ipod").hide();
		$(".modeltable").hide();
	}
}
function updateDisplayOfScreen() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1
			&& a.getAttribute("title")
			&& a.disabled == false ) {
				a.disabled = !a.disabled;
				a.disabled = !a.disabled;
				break;
		}
	}
}
function displayInitialScreen() {
	$("#iniIpod").val("");
	resetYourModel();
}
function scrollIpodIcon() {
	if (gTid_ScrollIpodIcon != '') {
		clearTimeout(gTid_ScrollIpodIcon);
	}
	gTid_ScrollIpodIcon = setTimeout("scrollIpodIconProc()", gAjaxReqWaitTime);
}
function scrollIpodIconProc() {
	clearTimeout(gTid_ScrollIpodIcon);
	getScrollSize();
	var iPodIndex = $.inArray($("#iniIpod").val(), arrIpodModels);
	if (iPodIndex >= 0)  {
		var moveLeftPos = 0;
		var ipodIconCount = arrIpodIconWidths.length;
		for (var i=0; i<ipodIconCount && i<iPodIndex; i++) {
			moveLeftPos += arrIpodIconWidths[i];
		}
		moveLeftPos = moveLeftPos + (2 * iPodIndex) + 1;
		if (moveLeftPos > giPodIconScrollLeftMax) {
			moveLeftPos = giPodIconScrollLeftMax;
		}
		if ( $("div.Select_iPod3b").css('direction') == "rtl" ) {
			if ( gFirefox >= 3 ) {
				moveLeftPos *= -1;
			} else {
				moveLeftPos = giPodIconScrollLeftMax - moveLeftPos;
			}
		}
		if ($(".Select_iPod3b").scrollLeft() != moveLeftPos) {
			$(".Select_iPod3b").animate({ scrollLeft: moveLeftPos }, 'farst' );
		}
	}
}
function getScrollSize() {
	if (giPodIconScrollLeftMax <= 0 || arrIpodIconWidths.length <= 0) {
		arrIpodModels = new Array();
		arrIpodIconWidths = new Array();
		$("table.ipod").find("td.img").each(function(){
			arrIpodModels.push( $(this).attr('name') );
			arrIpodIconWidths.push( $(this).width() );
		});
		giPodIconScrollLeftMax = $(".Select_iPod3b").attr('scrollWidth') - $(".Select_iPod3b").attr('clientWidth');

		// Initial ScrollLeft Set on Arabic for Firefox2
		if ( $("div.Select_iPod3b").css('direction') == "rtl" && gFirefox == 2 ) {
			$("div.Select_iPod3b").scrollLeft(giPodIconScrollLeftMax-1);
		}
	}
}
function updateDisplayOfRelatedLink() {
	$.ajax({
		dataType: "get",
		data: {
			"mode":"RelatedLink",
			"model": $("#model").val(),
			"lang":document.form1.lang.value
		},
		cache: false,
		async: true,
		url: "index.php",
		success: function (htmlRelatedLink) {
				$("ul#relatedLink").html(htmlRelatedLink);
		}
	});
}
function chgLang(lang)
{
	formObj = document.form1;
	formObj.lang.value = lang;
	formObj.submit();
	return false;
}

function ajaxErrorFunction( textStatus ) {
	$("#iniIpod").val("");
	$("#ini").val("");
	createModelNameListBox([""]);
	displayScreen(false);
}

function locationRemarkInfo() {
	var baseRemarkInfo = $("div.adaptor_remark_item > *");
	$("div.interface_adaptor").find("div.remark_info").each(function(i,w) {
		$(baseRemarkInfo).clone().appendTo(w);
	})
}

