$.extend({includePath: '',include: function(file) {var files = typeof file == "string" ? [file]:file;for (var i = 0; i < files.length; i++) {var name = files[i].replace(/^\s|\s$/g, "");var att = name.split('.');var ext = att[att.length - 1].toLowerCase();var isCSS = ext == "css";var tag = isCSS ? "link" : "script";var attr = isCSS ? " type='text/css' rel='stylesheet' " : " language='javascript' type='text/javascript' ";var link = (isCSS ? "href" : "src") + "='" + $.includePath + name + "'";if ($(tag + "[" + link + "]").length == 0) document.write("<" + tag + attr + link + "></" + tag + ">");}}});
$.includePath = 'javascript/';
$.include(['jquery.cookie.js', 'jquery.hotkeys.js', 'json2.js', 'jquery.datagrid.js']);
var fields = {ALSO_NAME:["并列题名"],AMOUNT:["复本数"],ANNOTATION:["备注"],APPENDIX:["附件"],BATCH_NUMBER: ["批号"],BINDING:["装订方式"],BOOK_NO:["图书条码"],BOOK_NUMBER:["书号"],BOOK_SIZE:["图书尺寸"],BOOK_STATUS:["状态",{"1":"在库","2":"已借出","3":"注销"}],BOOK_SUB_NAME:["分册号"],BOOK_SUB_NUMBER:["分册名"],CATEGORY_ID:["分类号"],CONTENT:["内容简介"],CURRENCY:["币种"],CURRENCY_NAME:["币种",{"CNY":"人民币","USD":"美元"}],DUE_RETURN_DATE:["应还日期"],FINE_PRICE:["罚款"],FINE_REASON:["说明"],ISBN:["ISBN"],KEYWORDS:["主题词"],LANGUAGE:["语种"],LOAN_DATE:["外借日期"],MAIN_NAME:["题名"],MAIN_NAME_PY:["主题名拼音"],NOTE:["说明"],OTHER_STYLE:["其他形态"],PAGE:["卷页数"],PARDON:["赦免",{"1":"罚款","2":"赦免"}],PRICE:["价格"],PUBLISH_DATE:["出版日期"],PUBLISH_PLACE:["出版地"],PUBLISHER:["出版社"],READER_NAME:["读者姓名"],READER_NO:["读者证号"],REFERENCE:["附注"],RESPONSIBLE:["责任者"],RESPONSIBLE_COUNTRY:["国别/朝代"],RESPONSIBLE_IS_ORG:["团体"],RESPONSIBLE_POSITION:["责任方式"],RESPONSIBLE_PY:["责任者拼音"],RESPONSIBLE2:["其他责任者"],RESPONSIBLE2_COUNTRY:["国别/朝代"],RESPONSIBLE2_IS_ORG:["团体"],RESPONSIBLE2_POSITION:["责任方式"],RETURN_DATE:["归还日期"],RETURN_NOTE:["归还说明"],SEARCH_NO:["索书号"],SECOND_NAME:["副题名"],SERIAL_EDITOR:["丛编者"],SERIAL_NAME:["丛书名"],SERIAL_NUMBER:["分丛号"],SERIAL_SUB_NAME:["分丛名"],STORAGE_PLACE:["馆藏地"],VERSION:["版本"]};
var columns = ["MAIN_NAME", "SECOND_NAME", "ALSO_NAME", "RESPONSIBLE", "RESPONSIBLE2", "LANGUAGE", "ISBN", "BOOK_NUMBER", "BOOK_SUB_NAME", "BOOK_SUB_NUMBER", "PUBLISHER", "PUBLISH_PLACE", "PUBLISH_DATE", "VERSION", "PAGE", "BOOK_SIZE", "BINDING", "CATEGORY_ID", "SEARCH_NO", "CURRENCY_NAME", "PRICE", "SERIAL_NAME", "SERIAL_NUMBER", "APPENDIX", "KEYWORDS", "REFERENCE"];
var CODE;
$(function() {

//判断授权密码
    //if (!$.cookie("LOGIN")) check();
    ajaxLoader();
    $("#QUERY_TEXT").blur(function() {
        setTimeout(function() { $("#QUERY_TEXT").select(); }, 3000);
    }).bind("keydown", "return", QUERY).focus();
    $(document).bind('keydown', 'Alt+q', function() { $("#QUERY_TEXT").focus() });
    var offset = $("#QUERY_TEXT").offset();
    $("#qTip").css("left", offset.left + 10).css("top", offset.top + 3)[$("#QUERY_TEXT").val() == "" ? "show" : "hide"]();

    $("#btnQuery").click(QUERY);

    $.getScript("http://www.google-analytics.com/ga.js", function() {
        try { var pageTracker = _gat._getTracker("UA-10173203-1"); pageTracker._trackPageview(); } catch (err) { }
    });

});

//function check() {
    //var sn = window.prompt("请输入授权服务密码", "");
    //if (!sn || sn.toLowerCase() != "lylztsg") {
        //if (confirm("授权密码错误，是否重试？")) {
           // check();
       // } else {
            //$("#main").hide();
       // }
       // return;
    //}
    //else {
       // $.cookie("LOGIN", "True", { expires: 1 });
    //}
//}

function QUERY() {
    var CATEGORY_ID = $("#CATEGORY_ID").val();
    var QUERY_ITEM = $("#QUERY_ITEM").val();
    var QUERY_TEXT = encodeURIComponent($("#QUERY_TEXT").val());
	if (QUERY_TEXT == "") return showMessage("info","请输入套录检索点")||$("#QUERY_TEXT").select();
    if (QUERY_ITEM == "ISBN") {
        ISBN.call($("#QUERY_TEXT")[0]);
        QUERY_ITEM = "ISBN_SOURCE";
        QUERY_TEXT = $("#QUERY_TEXT").val().replace(/-/g,'');
        QUERY_TEXT = QUERY_TEXT.substring(QUERY_TEXT.length, QUERY_TEXT.length - 10).substring(0, 9);
    }
    var filter = "?$top=100&$orderby=ID desc";
	filter += "&$filter=" + QUERY_ITEM + " eq '" + QUERY_TEXT + "'";
	$.ajax({
		url: "http://www.weblibrary.cn:88/marc/service.svc/BOOK" + filter,
		dataType: "jsonp",
		jsonp: "$format=json&$callback",
		success: function(data) {
			$("#grid").height("auto").dataGrid({
				keys: ["ID"],
				fields: columns,
				data: data.d,
				width: 3000,
				disabledCode: true,
				fieldTrigger: "MARC",
				click: function(MARC) {
					try {
						copyToClipboard(MARC);
					} catch (e) { alert(e) }
				}
			});
			$("#grid tbody tr:first").click();
		}
	});
}

function ajaxLoader() {
    var loader = $("<img id='loading' src='/images/loading.gif'>").appendTo(document.body).ajaxStart(function() {
        $(this).show();
    }).ajaxStop(function() {
        $(this).hide();
    }).ajaxError(function(a, b, e) {
        $(this).hide();
        //alert("远程调用错误：\n\n[网址] " + e.url + "\n[类别] " + e.type + "    [返回状态] " + b.status + "\n[数据]------------\n" + e.data + "\n[返回消息]------------\n" + b.responseText);
    });
}

function getFilterString(items, text) {
    return $.map(items, function(o) { return "startswith(" + o + ",'" + text + "')" }).join(" or ");
}

function ISBN() {
    var val = $(this).val().replace(/[-\s]/g, '');
    if (/^\d+[\dxX]?$/.test(val) && eval("typeof ISBN" + val.length + "=='function'")) {
        eval("ISBN" + val.length).call(this, val);
    }
}

function ISBN8(code) { return ISBN13.call(this, "9787" + code); }
function ISBN9(code) { return ISBN13.call(this, "978" + code); }
function ISBN12(code) { return ISBN13.call(this, code); }
function ISBN10(code) {
    var i = 0, c = 0; //	c:checksum
    for (; i < 9; )
        c += code.charAt(i++) * i;
    c %= 11; if (c == 10) c = 'X';
    code = code.substring(0, 9) + c;
    var str = toISBNString(code)
    $(this).val(str);
}

function ISBN13(code) {
    if (!/^(978)\d{9,10}$/.test(code)) return false;
    var i = 1, c = 0;
    for (; i < 12; i += 2)
        c += Math.floor(code.charAt(i));
    for (c *= 3, i = 0; i < 12; i += 2)
        c += Math.floor(code.charAt(i));
    c = (220 - c) % 10;
    code = code.substring(0, 12) + c;
    var str = "978-" + toISBNString(code.substring(3));
    $(this).val(str);
}

function toISBNString(code) {
    if (code.substring(0, 1) == "7") {
        var str = "7-";
        switch (code.substring(1, 2)) {
            case "0":
                str += code.substring(1, 3) + "-" + code.substring(3, 9);
                break;
            case "1":
            case "2":
            case "3":
            case "4":
                str += code.substring(1, 4) + "-" + code.substring(4, 9);
                break;
            case "5":
            case "6":
            case "7":
                str += code.substring(1, 5) + "-" + code.substring(5, 9);
                break;
            case "8":
                str += code.substring(1, 6) + "-" + code.substring(6, 9);
                break;
            case "9":
                str += code.substring(1, 7) + "-" + code.substring(7, 9);
                break;
        }
        str += "-" + code.substring(9);
        return str;
    }
}


function copyToClipboard(MARC) {
  var txt = parseMARC(MARC);
  if(window.clipboardData) {   
		 window.clipboardData.clearData();   
		 window.clipboardData.setData("Text", txt);   
  } else if(navigator.userAgent.indexOf("Opera") != -1) {   
	  window.location = txt;   
  } else if (window.netscape) {   
	  try {   
		   netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");   
	  } catch (e) {   
		   alert("被浏览器拒绝！\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");   
	  }   
	  var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);   
	  if (!clip)   
		   return;   
	  var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);   
	  if (!trans)   
		   return;   
	  trans.addDataFlavor('text/unicode');   
	  var str = new Object();   
	  var len = new Object();   
	  var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);   
	  var copytext = txt;   
	  str.data = copytext;   
	  trans.setTransferData("text/unicode",str,copytext.length*2);   
	  var clipid = Components.interfaces.nsIClipboard;   
	  if (!clip)   
		   return false;   
	  clip.setData(trans,null,clipid.kGlobalClipboard);
  }
}

function parseMARC(MARC) {
    var ldr = MARC.substring(0, 24);
    var start = parseInt(MARC.substring(12, 17), 10);
    var addr = MARC.substring(24, start);
    var data = MARC.substring(start, MARC.length - 1);
    var fieldnames = [];
    for (var i = 0, j = addr.length / 12; i < j; i++) {
        fieldnames.push(addr.substring(12 * i, 12 * i + 3));
    }
    var fielddatas = data.split("\x1E");
    var marc = [];
    for (var i = 0, j = Math.min(fieldnames.length, fielddatas.length); i < j; i++) {
        var fieldname = fieldnames[i];
        var fielddata = fielddatas[i];
        marc.push(fieldname + fielddata.replace(/\x1F/g, '▼'));
    }

    return marc.join("\x04")
}

function showMessage(msgType, text, sec) {
    if (!msgType) msgType = "info";
    if (!text) text = "保存操作成功.";
    var html = "<div class='msgbox' style='background-image:url(images/icon/" + msgType + ".gif)'>" + text + "</div>";
    var msgbox = $(html).appendTo(document.body).animate({ top: -2 });
    if (msgType == "info") {
        msgbox.animate({ top: -2 }, sec || 2000).slideUp("slow", function() { $(this).remove() });
    }
    else {
        $("<img style='position:absolute;top:3px;right:3px' src='images/icon/close.gif'>").appendTo(msgbox).click(function() { msgbox.remove() });
    }
}