/* Version 2.0 */

if(!this.JSON){this.JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==="string"){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})}}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());(function($){var methods={init:function(options){options=$.extend({site:false,list:false,cache:false},options);if(options.site){$.yasq.DEFAULT_SITE=options.site}if(options.list){$.yasq.DEFAULT_LIST=options.list}if(options.cache){$.yasq.DEFAULT_CACHE_TIME=options.cache}},error:function(errorMsg){alert("An error occured:\n"+errorMsg);return},modListItems:function(options){options=$.extend({site:$.yasq.DEFAULT_SITE,list:$.yasq.DEFAULT_LIST,items:false,success:function(results){return},error:function(errorMsg){$.yasq("error",errorMsg)}},options);if(!options.site){options.error("modListItems: No site specified");return}if(!options.list){options.error("modListItems: No list specified");return}if(!options.items){options.error("modListItems: No items specified");return}var itemFields="";if(options.items.constructor==Array){for(var i=0;i<options.items.length;i++){if(options.items[i].id-0!=options.items[i].id){options.error("ModListItems: No id column specified for item "+i+".");return}itemFields+='<Method ID="'+options.items[i].id+'" Cmd="';if(options.items[i].id==0){itemFields+="New"}else{if(options.items[i].cmdDelete==true){itemFields+="Delete"}else{itemFields+="Update"}}itemFields+='"><Field Name="ID">'+options.items[i].id+"</Field>";for(property in options.items[i]){if(property!="id"&&property!="ID"){itemFields+='<Field Name="'+property+'">'+options.items[i][property]+"</Field>"}}itemFields+="</Method>"}}else{if(options.items.id-0!=options.items.id){options.error("ModListItems: No id column specified.");return}itemFields+='<Method ID="'+options.items.id+'" Cmd="';if(options.items.id==0){itemFields+="New"}else{if(options.items.cmdDelete==true){itemFields+="Delete"}else{itemFields+="Update"}}itemFields+='"><Field Name="ID">'+options.items.id+"</Field>";for(property in options.items){if(property!="id"&&property!="ID"){itemFields+='<Field Name="'+property+'">'+options.items[property]+"</Field>"}}itemFields+="</Method>"}var soapXML='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body> 					<UpdateListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 						<listName>'+options.list+'</listName> 						<updates> 							<Batch OnError="Continue"> 							'+itemFields+" 							</Batch> 						</updates> 					</UpdateListItems> 				</soapenv:Body></soapenv:Envelope>";$.ajax({url:options.site+"_vti_bin/Lists.asmx",type:"POST",dataType:"xml",data:soapXML,complete:function(xData,status){var errorText=$(xData.responseXML).find("detail").text();if(errorText!=""){options.error("SOAP Error:\n"+errorText);return}var results=[];$(xData.responseXML).find("Result").each(function(i,rowData){var errorCode=$(this).find("ErrorCode").text();if(errorCode=="0x00000000"){results[i]={status:"success"};$(this).find('[nodeName="z:row"]').each(function(){$.each(this.attributes,function(j,attribute){results[i][attribute.name.substr(4).replace(/(_x0020_)/g,"")]=attribute.value})})}else{results[i]={status:"error",error:$(this).find("ErrorText").text(),errorCode:errorCode}}});options.success(results)},contentType:'text/xml; charset="utf-8"',beforeSend:function(xhr){xhr.setRequestHeader("SOAPAction","http://schemas.microsoft.com/sharepoint/soap/UpdateListItems")}})},delListItems:function(options){options=$.extend({site:$.yasq.DEFAULT_SITE,list:$.yasq.DEFAULT_LIST,items:false,success:function(){return},error:function(errorMsg){$.yasq("error",errorMsg)}},options);if(!options.site){options.error("delListItems: No site specified");return}if(!options.list){options.error("delListItems: No list specified");return}if(!options.items){options.error("delListItems: No items specified");return}var delCommands=[];if(options.items.constructor==Array){for(var i=0;options.items[i];i++){delCommands[i]={id:options.items[i],cmdDelete:true}}}else{delCommands={id:options.items,cmdDelete:true}}$.yasq("modListItems",{site:options.site,list:options.list,items:delCommands,success:options.success,error:options.error})},addListItems:function(options){options=$.extend({site:$.yasq.DEFAULT_SITE,list:$.yasq.DEFAULT_LIST,items:false,success:function(){return},error:function(errorMsg){$.yasq("error",errorMsg)}},options);if(!options.site){options.error("addListItems: No site specified");return}if(!options.list){options.error("addListItems: No list specified");return}if(!options.items){options.error("addListItems: No items specified");return}var delCommands=[];if(options.items.constructor==Array){for(var i=0;options.items[i];i++){options.items[i].id=0}}else{options.items.id=0}$.yasq("modListItems",{site:options.site,list:options.list,items:options.items,success:options.success,error:options.error})},getListItems:function(options){options=$.extend({site:$.yasq.DEFAULT_SITE,list:$.yasq.DEFAULT_LIST,success:false,limit:100,fields:["Title"],query:'<OrderBy><FieldRef Name="ID" Ascending="TRUE" /></OrderBy>',recursive:false,cache:$.yasq.DEFAULT_CACHE_TIME,error:function(errorMsg){$.yasq("error",errorMsg)}},options);if(options.site==""){options.error("getListItems: no site specified\n\nAborting");return}if(options.list==""){options.error("getListItems: no list specified\n\nAborting");return}if(options.success==""){options.error("getListItems: no success specified\n\nAborting");return}if(options.cache){if(localStorage){options.cacheTo="yasqGLI"+options.site+options.list+options.fields+options.query;options.cacheUntil=new Date();options.cacheUntil=options.cacheUntil.setSeconds(options.cacheUntil.getSeconds()+options.cache);var cachedUntil=localStorage.getItem(options.cacheTo+".date");if(cachedUntil!="undefined"&&cachedUntil>Date.parse(new Date())){options.success(JSON.parse(localStorage.getItem(options.cacheTo)));return}else{localStorage.setItem(options.cacheTo,"");localStorage.setItem(options.cacheUntil,"")}}}var viewFields="";$.each(options.fields,function(i,d){viewFields+='<FieldRef Name="'+d+'" />'});var query="";if(options.query){query="<query><Query>"+options.query+"</Query></query>"}queryOptions='<queryOptions xmlns:SOAPSDK9="http://schemas.microsoft.com/sharepoint/soap/" ><QueryOptions>';if(options.recursive==true){queryOptions+='<ViewAttributes Scope="Recursive"/>'}queryOptions+="</QueryOptions></queryOptions>";var soapXML='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body> 					 <GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 						<listName>'+options.list+"</listName> 						"+query+" 						<viewFields> 							<ViewFields> 							   "+viewFields+" 						   </ViewFields> 						</viewFields> 						<rowLimit>"+options.limit+"</rowLimit> 						"+queryOptions+" 					</GetListItems> 				</soapenv:Body></soapenv:Envelope>";$.ajax({url:options.site+"_vti_bin/Lists.asmx",type:"POST",dataType:"xml",data:soapXML,complete:processResult,contentType:'text/xml; charset="utf-8"'});function processResult(xData,status){if($(xData.responseXML).find("faultcode").text()!=""){options.error("A SOAP error occured ("+$(xData.responseXML).find("errorcode").text()+"):\n"+$(xData.responseXML).find("faultstring").text()+"\n"+$(xData.responseXML).find("errorstring").text())}var results=[];$(xData.responseXML).find('[nodeName="z:row"]').each(function(){var tempResults={};$.each(this.attributes,function(i,attribute){tempResults[attribute.name.substr(4).replace(/(_x0020_)/g,"")]=attribute.value});results.push(tempResults)});if(results==""){results=undefined}else{if(options.cacheTo){if(localStorage){localStorage.setItem(options.cacheTo,JSON.stringify(results));localStorage.setItem(options.cacheTo+".date",options.cacheUntil)}}}options.success(results)}},getListSchema:function(options){options=$.extend({site:false,list:false,success:false,view:false,cache:$.yasq.DEFAULT_CACHE_TIME,error:function(errorMsg){$.yasq("error",errorMsg)}},options);if(!options.site){options.error("getListSchema: No site specified!")}if(!options.list){options.error("getListSchema: No list specified!")}if(!options.success){options.error("getListSchema: No success function specified!")}if(options.cache){if(localStorage){options.cacheTo="yasqGLS"+options.site+options.list;options.cacheUntil=new Date();options.cacheUntil=options.cacheUntil.setSeconds(options.cacheUntil.getSeconds()+options.cache);var cachedUntil=localStorage.getItem(options.cacheTo+".date");if(cachedUntil!="undefined"&&cachedUntil>Date.parse(new Date())){options.success(JSON.parse(localStorage.getItem(options.cacheTo)));return}else{localStorage.setItem(options.cacheTo,"");localStorage.setItem(options.cacheUntil,"")}}}var soapXML='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body> 					<GetListAndView xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 						<listName>'+options.list+"</listName> 						"+(options.view?("<viewName>"+options.view+"</viewName>"):"")+" 					</GetListAndView> 				</soapenv:Body></soapenv:Envelope>";$.ajax({url:options.site+"_vti_bin/Lists.asmx",type:"POST",dataType:"xml",data:soapXML,complete:function(xData,status){if($(xData.responseXML).find("faultcode").text()!=""){options.error("A SOAP error occured ("+$(xData.responseXML).find("errorcode").text()+"):\n"+$(xData.responseXML).find("faultstring").text()+"\n"+$(xData.responseXML).find("errorstring").text());return}var listFields={};$(xData.responseXML).find("Fields Field").each(function(i,field){if($(this).attr("ReadOnly")=="TRUE"){return}var newField={};var fieldType=$(this).attr("Type");var fieldName=$(this).attr("DisplayName");var fieldInternalName=$(this).attr("Name");if(!fieldType||fieldInternalName=="Attachments"||fieldInternalName=="FileLeafRef"||fieldInternalName=="Order"||fieldInternalName=="MetaInfo"){return}newField={type:fieldType,required:(($(this).attr("Required")=="TRUE")?true:false),internalName:fieldInternalName};if($(this).attr("Description")){newField.description=$(this).attr("Description")}if(fieldType=="Text"){newField.maxLength=$(this).attr("MaxLength")}else{if(fieldType=="Choice"){newField.fillInChoice=$(this).attr("FillInChoice");newField.format=$(this).attr("Format");var fieldChoices=[];$(this).find("CHOICE").each(function(){fieldChoices[fieldChoices.length]=$(this).text()});newField.choices=fieldChoices}}listFields[fieldName]=newField});var listSchema={site:options.site,list:options.list,listGuid:$(xData.responseXML).find("List").attr("ID"),listUrl:$(xData.responseXML).find("List").attr("DefaultViewUrl"),fields:listFields};if(options.cacheTo){if(localStorage){localStorage.setItem(options.cacheTo,JSON.stringify(listSchema));localStorage.setItem(options.cacheTo+".date",options.cacheUntil)}}options.success(listSchema)},contentType:'text/xml; charset="utf-8"',beforeSend:function(xhr){xhr.setRequestHeader("SOAPAction","http://schemas.microsoft.com/sharepoint/soap/GetListAndView")}})},getCurrentUserData:function(options){options=$.extend({site:$.yasq.DEFAULT_SITE,cache:$.yasq.DEFAULT_CACHE_TIME,error:function(errorMsg){$.yasq("error",errorMsg)},success:function(userData){return}},options);var urlString=options.site+"_layouts/userdisp.aspx?Force=True";if(options.cache==false){urlString+="&"+new Date().getTime()}$.ajax({url:urlString,complete:function(xData,Status){if(Status=="error"){options.error("Unable to load user data.");return}var userData={};$(xData.responseText).find("table.ms-formtable td[id^='SPField']").each(function(){switch($(this).attr("id")){case"SPFieldText":userData[$(this).prev().text()]=$(this).text();break;case"SPFieldNote":userData[$(this).prev().text()]=$(this).find("div").html();break;case"SPFieldURL":userData[$(this).prev().text()]=$(this).find("img").attr("src");break;default:userData[$(this).prev().text()]=$(this).text();break}});var idSnippet=xData.responseText.substr(xData.responseText.indexOf("_spUserId=")+10,20);userData.id=idSnippet.substr(0,idSnippet.indexOf(";"));options.success(userData)}})},toHTML:function(str){return str.replace(/[\n]/g," <br> ").replace(/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/g,function(wholematch,firstmatch){return'<a target="_blank" href="'+wholematch+'">'+wholematch+"</a>"})},frToImage:function(fileref,size){fileref=fileref.substr(fileref.indexOf(";#")+2);if(!size){return"/"+fileref}if(size=="thumb"){var sizeFolder="/_t"}else{var sizeFolder="/_w"}var lastSlash=fileref.lastIndexOf("/");fileref=fileref.substr(0,lastSlash)+sizeFolder+fileref.substr(lastSlash);var extension=fileref.substr(fileref.lastIndexOf("."));var thumbExtension="_"+extension.substr(1)+extension;return"/"+fileref.substr(0,fileref.lastIndexOf("."))+thumbExtension},frToFolder:function(FileRef,spLibraryName){FileRef=FileRef.substr(FileRef.indexOf(spLibraryName)+spLibraryName.length+1);return FileRef.substr(0,FileRef.lastIndexOf("/"))},getName:function(spAuthor){if(!spAuthor){return spAuthor}var spAuthors=spAuthor.replace(/\;\#/g,"‡").split("‡");spAuthor="";var lastName;for(var i=1;i<spAuthors.length;i=i+2){lastName=spAuthors[i].substring(0,spAuthors[i].indexOf(" "));spAuthors[i]=spAuthors[i].replace(lastName+" ","");spAuthor+=", "+spAuthors[i].substring(0,spAuthors[i].indexOf(" "))+" "+lastName}return spAuthor.substr(2)},getTimeSince:function(spDate){var weekdays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Nov","Dec"];if(!spDate){return""}if(spDate.indexOf(";#")>-1){spDate=spDate.substr(spDate.indexOf(";#")+2)}var currentTime=new Date();var spTime=new Date(spDate.substring(0,4),spDate.substring(5,7)*1-1,spDate.substring(8,10),spDate.substring(11,13),spDate.substring(14,16),spDate.substring(17,19));var difference=currentTime.getTime()-spTime.getTime();var daysDifference=Math.floor(difference/1000/60/60/24);difference-=daysDifference*1000*60*60*24;if(spTime.getFullYear()==currentTime.getFullYear()&&spTime.getMonth()==currentTime.getMonth()&&spTime.getDate()==currentTime.getDate()-1){var theTime=" at "+((spTime.getHours()>12)?(spTime.getHours()-12):spTime.getHours())+":"+((spTime.getMinutes()<10)?"0"+spTime.getMinutes():spTime.getMinutes())+((spTime.getHours()>11)?"pm":"am");if(theTime==" at 0:00am"){theTime=""}return"Yesterday"+theTime}if(daysDifference>0){var theTime=" at "+((spTime.getHours()>12)?(spTime.getHours()-12):spTime.getHours())+":"+((spTime.getMinutes()<10)?"0"+spTime.getMinutes():spTime.getMinutes())+((spTime.getHours()>11)?"pm":"am");if(theTime==" at 0:00am"){theTime=""}if(spTime.getTime()>=currentTime.getTime()-(1000*60*60*24*7)){var theDay=weekdays[spTime.getDay()]+" - "}else{var theDay=""}return theDay+months[spTime.getMonth()]+", "+spTime.getDate()+" "+spTime.getFullYear()+theTime}var hoursDifference=Math.floor(difference/1000/60/60);difference-=hoursDifference*1000*60*60;if(hoursDifference==1){return"1 hour ago"}if(hoursDifference>0){return hoursDifference+" hours ago"}var minutesDifference=Math.floor(difference/1000/60);difference-=minutesDifference*1000*60;if(minutesDifference<2&&minutesDifference>0){return"A minute ago"}if(minutesDifference>0){return minutesDifference+" minutes ago"}var secondsDifference=Math.floor(difference/1000);if(secondsDifference<5){return"Like a second ago"}return secondsDifference+" seconds ago"},getProfileURL:function(profileString,site){var user_site;if(site){user_site=site}else{if($.yasq.DEFAULT_SITE){user_site=$.yasq.DEFAULT_SITE}else{user_site=""}}return user_site+"_layouts/userdisp.aspx?ID="+profileString.substr(0,profileString.indexOf(";"))}};$.yasq=function(method){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1))}else{if(typeof method==="object"||!method){return methods.init.apply(this,arguments)}else{$.error("Method "+method+" does not exist on jQuery.yasq")}}};$.yasq.DEFAULT_CACHE_TIME=false;$.yasq.DEFAULT_SITE=false;$.yasq.DEFAULT_LIST=false})(jQuery);
