/**
 * @author csekerci
 */

function SPList(){}
function SPMenu () {}
function SPAuth(){}
function MessageBox(){}
//SPList.Items = new Object();
SPList.domain = "http://"+document.domain+"/";

SPAuth.getInfo = function() {
	var info = document.getElementById("welcomeText").innerHTML;
	if(info.indexOf('admin')) { 
		SPAuth.adminState = true;
		return true;
	}
	SPAuth.adminState = false
	return false;
}
SPAuth.login = function() {
	siteName = "";
		try {	
			var pl = new SOAPClientParameters();
			pl.add("username", "Guest");
			pl.add("password", "_guestaccount");
			if (siteName == "" || siteName == null) {
				siteName = "";
			} else {
				siteName = siteName + "/";
			}
			var url = SPList.domain+siteName+"_vti_bin/Authentication.asmx";
			SOAPClient.invoke(url, "Login", pl, false);
		} catch(e) {
			//alert(e);
		}

}

	
SPList.getListItems = function(siteName,listName, fieldName, asyncState) {
	field = fieldName;
	SPList.siteName = siteName;
	SPList.Items = new Object();
	try {	
		var pl = new SOAPClientParameters();
		pl.add("listName", listName);
		if (siteName == "" || siteName == null) {
			siteName = "";
		} else {
			siteName = siteName + "/";
		}
		var url = SPList.domain+siteName+"_vti_bin/Lists.asmx";
		SOAPClient.invoke(url, "GetListItems", pl, asyncState, SPList.getListItems_callBack);
	} catch(e) {
		//alert(e);
	}
	return SPList.Items;
}

SPList.getListItem = function(siteName,listName, query, viewFields, asyncState) {
	SPList.siteName = siteName;
	SPList.Item = new Object();
	try {	
		var pl = new SOAPClientParameters();
		pl.add("listName", listName);
		pl.add("query", query);
		//pl.add("viewFields", viewFields.toString());
		if (siteName == "" || siteName == null) {
			siteName = "";
		} else {
			siteName = siteName + "/";
		}
		var url = SPList.domain+siteName+"_vti_bin/Lists.asmx";
		SOAPClient.invoke(url, "GetListItems", pl, asyncState, SPList.getListItem_callBack);
	} catch(e) {
		//alert(e);
	}
	return SPList.Item;
}

SPList.addItem = function(siteName, listName, fields, asyncState, message) {
	SPList.siteName = siteName;
	SPList.Items = new Object();
	var fieldList = fields.split("|");
	var data = new Object();
	for(var field in fieldList) {
		var tmp = fieldList[field].split(":");
		data[tmp[0]] = tmp[1];
	}
	var FieldData = "";
	for(var field in data) {
		FieldData += '<Field Name="'+field+'">'+data[field]+'</Field>';
	}
	var batch = '<Batch OnError="Continue">'
					+ '<Method ID="1" Cmd="New">'
					+ FieldData
					+ '</Method>'
					+ '</Batch>';
	try {	
		var pl = new SOAPClientParameters();
		pl.add("listName", listName);
		pl.add("updates", batch);
		if (siteName == "" || siteName == null) {
			siteName = "";
		} else {
			siteName = siteName + "/";
		}
		var url = SPList.domain+siteName+"_vti_bin/Lists.asmx";
        SPList.addItem.message = message;
		SOAPClient.invoke(url, "UpdateListItems", pl, asyncState, SPList.addItem_callBack);
	} catch(e) {
		//alert(e);
	}
}

SPList.addItem_callBack = function(e, soapResponse) {
	MessageBox.Show("info", SPList.addItem.message);
}
	
SPList.getListItems_callBack = function(itemList, soapResponse) {
	responseDIV = document.getElementById("itemsToShow");
	var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	xmlDoc.async="false";
	xmlDoc.loadXML(soapResponse.xml);
	field = xmlDoc.getElementsByTagName("z:row");
	for(i=0;i<field.length;i++) {
		var Item = new Object();
		for(k=0;k<field[i].attributes.length;k++) {
			Item[field[i].attributes[k].name] = field[i].attributes[k].value;
		}
		SPList.Items[i] = Item;		
	}
	SPList.Items.count = i;
}

SPList.getListItem_callBack = function(itemList, soapResponse) {
	responseDIV = document.getElementById("itemsToShow");
	var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	xmlDoc.async="false";
	xmlDoc.loadXML(soapResponse.xml);
	field = xmlDoc.getElementsByTagName("z:row");
	for(i=0;i<field.length;i++) {
		var Item = new Object();
		for(k=0;k<field[i].attributes.length;k++) {
			Item[field[i].attributes[k].name] = field[i].attributes[k].value;
		}
		SPList.Item[i] = Item;		
	}
}

SPList.addItem = function(siteName, listName, fields, asyncState, message) {
	SPList.siteName = siteName;
	SPList.Items = new Object();
	var fieldList = fields.split("|");
	var data = new Object();
	for(var field in fieldList) {
		var tmp = fieldList[field].split(":");
		data[tmp[0]] = tmp[1];
	}
	var FieldData = "";
	for(var field in data) {
		FieldData += '<Field Name="'+field+'">'+data[field]+'</Field>';
	}
	var batch = '<Batch OnError="Continue">'
					+ '<Method ID="1" Cmd="New">'
					+ FieldData
					+ '</Method>'
					+ '</Batch>';
	try {	
		var pl = new SOAPClientParameters();
		pl.add("listName", listName);
		pl.add("updates", batch);
		if (siteName == "" || siteName == null) {
			siteName = "";
		} else {
			siteName = siteName + "/";
		}
		var url = SPList.domain+siteName+"_vti_bin/Lists.asmx";
        SPList.addItem.message = message;
		SOAPClient.invoke(url, "UpdateListItems", pl, asyncState, SPList.addItem_callBack);
	} catch(e) {
		alert(e);
	}
}

SPList.addItem_callBack = function(e, soapResponse) {
	MessageBox.Show("info", SPList.addItem.message);
}


function PictureList() {}

PictureList.slideShow = function(siteName, listName, container) {
	mydiv = document.getElementById(container); 
	siteSrc = siteName.replace(/ /g, ""); 
	listSrc = listName.replace(/ /g, "");
	if(listName=="Images" || listName=="Resimler") listSrc="PublishingImages";  
	PictureList.Items = SPList.getListItems(siteSrc,listName,'',false);
	for(i=0;i<PictureList.Items.count;i++) {
		if(!PictureList.Items[i].ows_Description0) PictureList.Items[i].ows_Description0 = PictureList.Items[i].ows_LinkFilename.toString();
		var ImgSrc = SPList.domain+siteSrc+"/"+listSrc+"/"+PictureList.Items[i].ows_LinkFilename.toString();
		mydiv.innerHTML = mydiv.innerHTML + '<div class="img"><a class="group" title="'+PictureList.Items[i].ows_Description0.toString()+'" href="'+ImgSrc+'" rel="group"><img width="100" height="75" src="'+ImgSrc+'" border="0"></a></div>';	
	}
	PictureList.Items = null;
}
function PictureListK() {}

PictureListK.slideShow = function(siteName, listName, container) {
	mydiv = document.getElementById(container); 
	siteSrc = siteName.replace(/ /g, ""); 
	listSrc = listName.replace(/ /g, "");
	if(listName=="Images" || listName=="Resimler") listSrc="PublishingImages";  
	PictureListK.Items = SPList.getListItems(siteSrc,listName,'',false);
	for(i=0;i<PictureListK.Items.count;i++) {
		if(!PictureListK.Items[i].ows_Description0) PictureListK.Items[i].ows_Description0 = PictureListK.Items[i].ows_LinkFilename.toString();
		var ImgSrc = SPList.domain+siteSrc+"/"+listSrc+"/"+PictureListK.Items[i].ows_LinkFilename.toString();
		mydiv.innerHTML = mydiv.innerHTML + '<div class="img"><a class="group" title="'+PictureListK.Items[i].ows_Description0.toString()+'" href="'+ImgSrc+'" rel="group"><img width="150" height="100" src="'+ImgSrc+'" border="0"></a></div>';	
	}
	PictureList.Items = null;
}

function ContentDisplay() {}

ContentDisplay.getList = function(siteName,listName,container) {
	cont = document.getElementById(container);
	ContentDisplay.Items = SPList.getListItems(siteName, listName, '', false);
	var pageUrl = window.location.href;
	if(pageUrl.indexOf("/tr")>0) {
		PicLibrary = "Resimler";
		clickHereLink = "Foto&#287;raflar ve daha fazlas&#305; i&#231;in t&#305;klay&#305;n";
	} else {
		PicLibrary = "Images";
		clickHereLink = "Click here for photos and more";
	}
	for(j=0;j<ContentDisplay.Items.count;j++) {
		title = ContentDisplay.Items[j].ows_Title;
		var query = '<Query><Where><Eq><FieldRef Name="Title"/><Value Type="Text">'+ContentDisplay.Items[j].ows_Title+'</Value></Eq></Where></Query>';
		viewFields = '<ViewFields><FieldRef Name="Title" /></ViewFields>';
		picture = SPList.getListItem(siteName, PicLibrary, query, viewFields, false);
		contentHTML = '<div class="content">'+ContentDisplay.Items[j].ows_Content.substr(0,455)+'...</div>';
		titleHTML = '<div class="contentTitle"><a style="cursor:pointer" class="titleLink">'+ContentDisplay.Items[j].ows_ContentTitle.toString()+'</a></div>';
		linkHTML = '<div class="contentLink"><a href="#" class="details">more</a></div>'
		pictureLink = "<div class=\"pictureLink\"><a style=\"cursor:pointer\" href=\""+SPList.domain+siteName.replace(/ /g, "")+"/"+ContentDisplay.Items[j].ows_ContentTitle.replace(/ /g, "")+"\">"+clickHereLink+"</a></div>";
		pictureHTML = '<div class="pictureCont" id="slideShowCont'+ContentDisplay.Items[j].ows_Title+'"><a style="cursor:pointer" href="'+SPList.domain+siteName.replace(/ /g, "")+'/'+ContentDisplay.Items[j].ows_ContentTitle.replace(/ /g, "")+'"><img border="0" src="'+SPList.domain+siteName.replace(/ /g, "")+'/PublishingImages/'+picture[0].ows_LinkFilename.toString()+'" /></a></div>';
		cont.innerHTML = cont.innerHTML + '<div id="Content" class="contentContainer">'+pictureHTML+titleHTML+contentHTML+pictureLink+'</div>';
		picture = null;
	}
	ContentDisplay.Items = null;
}

ContentDisplay.displayItemContent = function(siteName, listName, title, dispCont) {
	dispCont = document.getElementById(dispCont);
	query = '<Query><Where><Eq><FieldRef Name="Title" /><Value Type="Text">'+title+'</Value></Eq></Where></Query>';
	viewFields = "hebe";
	ContentDisplay.Item = SPList.getListItem(siteName, listName, query, viewFields, false);
	dispCont.innerHTML = '<div id="ItemContent"><div class="contentTitle">'+ContentDisplay.Item[0].ows_ContentTitle+'</div><div class="content">'+ContentDisplay.Item[0].ows_Content.toString()+'</div></div>';
}

SPMenu.getSiteMenu = function(site, listName) {
	var MenuItems = new Object();
	var Items = SPList.getListItems(site, listName, "", false);
	for(i=0;i<Items.count;i++) {
		var match = Items[i].ows_MetaInfo.match(/vti_title:(SR|SW)\|((.+))/);
		var tmpItem = new Object();
		tmpItem["title"] = match[2];
		tmpItem["link"] = Items[i].ows_LinkFilename;
		MenuItems[i] = tmpItem;
		//MenuItems[i].link = Items[i].ows_LinkFilename;
		MenuItems.count = i;
	}
	return MenuItems;		
}

SPMenu.SiteMenu = function(site, listName, container) {
	var menuCont = document.getElementById(container);
	MenuItems = SPMenu.getSiteMenu(site, listName);
	//menuCont.innerHTML = "<ul>"
	for(i=0;i<=MenuItems.count;i++) {
		menuCont.innerHTML = menuCont.innerHTML + '<li><a href="'+SPList.domain+site+'/'+listName+'/'+MenuItems[i].link+'">'+MenuItems[i].title+'</a></li>';
	}
	menuCont.innerHTML = '<ul>' + menuCont.innerHTML + '</ul>';
}

function ContentDisplay() {}

ContentDisplay.getList = function(siteName,listName,container) {
	//cont = document.getElementById(container);
	ContentDisplay.Items = SPList.getListItems(siteName, listName, '', false);
}

MessageBox.Show = function(mType, message) {
	MessageBox.mCont = document.createElement("div");
    MessageBox.mCont.id = "mBox";
	MessageBox.mCont.style.left = (screen.width / 2) - 224 + "px";
	MessageBox.mCont.style.top = (screen.height) / 2+"px";
    MessageBox.mContText = document.createElement("div");
    MessageBox.mContText.className = "mBoxText";
    MessageBox.mContText.innerHTML = message;
    MessageBox.mContCloseButton = document.createElement("span");
    MessageBox.mContCloseButton.className = "mBoxButton";
    MessageBox.mContCloseButton.innerHTML = "Ok";
    MessageBox.mContCloseButton.onclick = MessageBox.close;
    MessageBox.mCont.appendChild(MessageBox.mContText);
    MessageBox.mCont.appendChild(MessageBox.mContCloseButton);
	document.body.appendChild(MessageBox.mCont);
}
MessageBox.close = function() {
    MessageBox.mCont.style.visibility = "hidden";
    MessageBox.mCont = null;
}

