// import:	hashtable.js
function Parser() {

	this.getNodeValue = function(parent, node_name) {
		var temp = parent.getElementsByTagName(node_name);
		if(temp.length < 0) {
			return "";
		}

		if(temp.item(0).hasChildNodes()) {
			return temp.item(0).firstChild.nodeValue;
		} else {
			return "";
		}
	}
	
	// PARSE <service_result> ------------------------------------------------------------
	this.getResult = function(dom) {
		var temp = null;
		var result = null;
		var key = '';
		var value = '';
	
		var node = dom.getElementsByTagName("service-result");
		if(node.length > 0) {
			result = new Result();
			result.code = this.getNodeValue(node.item(0), 'code');
			result.desc = this.getNodeValue(node.item(0), 'description');
		}
		return result;
	}

	// PARSE <service_result> ------------------------------------------------------------
	this.getResultcode = function(dom) {
		var temp = null;
		var result = null;
		var key = '';
		var value = '';
	
		var node = dom.getElementsByTagName("service_result");
		if(node.length > 0) {
			result = new Result();
			result.code = this.getNodeValue(node.item(0), 'code');
			result.desc = this.getNodeValue(node.item(0), 'description');
		}
		return result;
	}


	// PARSE <user> --prang----------------------------------------------------------
	this.getUser = function(elements, online) {
		var temp = null;
		temp = new User();
			temp.id = elements.getAttribute("id");
			temp.cid = elements.getAttribute("cid");
			var NodeUsername	 	= elements.getElementsByTagName("username").item(0);
			temp.old_username = NodeUsername.getAttribute("old");
			temp.username = this.getNodeValue(elements, 'username');
			temp.displayname = this.getNodeValue(elements, 'displayname');

			temp.online = (online=='true')?this.getNodeValue(elements, 'online'):'true';
	
			if(temp.username.length < 1) {
				temp.username = "Untitiled";
			}
			if(temp.displayname.length < 1) {
				temp.displayname = "Untitiled";
			}
		
		return temp;
	}
	

	// PARSE  folder
	this.getVDOFolder = function(startNode) {
		var temp = null;
		var elements = startNode.documentElement.getElementsByTagName("folder");
		
		var objArray = new Array();
		for(i=0; i<elements.length; i++) {
			temp = new Folder();
		
			temp.id = elements.item(i).getAttribute("id");
			temp.fdefault = elements.item(i).getAttribute("default");
			temp.fnew = elements.item(i).getAttribute("new");
			temp.name = this.getNodeValue(elements.item(i), 'name'); 
			temp.description = this.getNodeValue(elements.item(i), 'description');
			//temp.display = this.getNodeValue(elements.item(i), 'display');
			//temp.display_order = this.getNodeValue(elements.item(i), 'display_order');
			//temp.comment = this.getNodeValue(elements.item(i), 'comment');
			//temp.privacy = this.getNodeValue(elements.item(i), 'privacy');
			//temp.display_order = this.getNodeValue(elements.item(i), 'display_order');
			
			objArray[i]=temp;
		}
		return objArray;
	}
	
	// PARSE  folder
	this.getFolderInfo = function(startNode) {
		var temp = null;
		var elements = startNode.documentElement.getElementsByTagName("folder");
		
		var objHash = new Hashtable();
		for(i=0; i<elements.length; i++) {
			temp = new Folder();
			temp.id = elements.item(i).getAttribute("id");
			temp.fdefault = elements.item(i).getAttribute("default");
			temp.name = this.getNodeValue(elements.item(i), 'name'); 
			temp.description = this.getNodeValue(elements.item(i), 'description');
			temp.display = this.getNodeValue(elements.item(i), 'display');
			temp.display_order = this.getNodeValue(elements.item(i), 'display_order');
			temp.comment = this.getNodeValue(elements.item(i), 'comment');
			temp.privacy = this.getNodeValue(elements.item(i), 'privacy');
			objHash.put(temp.id, temp);
		}
		return objHash;
	}
	
	
	// PARSE  folder
	this.getFolderDetail = function(startNode) {
		var temp = null;
		var elements = startNode.documentElement.getElementsByTagName("folder");
		
		var objHash = new Hashtable();
		for(i=0; i<elements.length; i++) {
			temp = new Folder();
			temp.id = elements.item(i).getAttribute("id");
			temp.fdefault = elements.item(i).getAttribute("default");
			temp.name = this.getNodeValue(elements.item(i), 'name'); 
			temp.description = this.getNodeValue(elements.item(i), 'description');
			temp.display = this.getNodeValue(elements.item(i), 'display');
			temp.view = this.getNodeValue(elements.item(i), 'view');
			temp.comment = this.getNodeValue(elements.item(i), 'comment');
			temp.privacy = this.getNodeValue(elements.item(i), 'privacy');
			objHash.put(temp.id, temp);
		}
		return objHash;
	}


	// PARSE  vdo list editor by prang
	this.getVDOListbyEditor = function(startNode,vdos) {
		//try{	
			var tag = '';
			var temp = new VDOList();
			//page detail
			var elements = startNode.documentElement.getElementsByTagName("page");
			for(i=0; i<elements.length; i++) {
				temp.current_page = elements.item(i).getAttribute("current");
				temp.page_count = parseInt(elements.item(i).getAttribute('count')); 
				temp.item_per_page =  parseInt(elements.item(i).getAttribute('length'));
			}
			
			var vdo =null;
			var contentNode = startNode.documentElement.getElementsByTagName("content");
			for (var j=0;j<contentNode.length; j++) {				
				vdos[j] = this.getNodeValue(contentNode.item(j), 'original_id');
			}
			return temp;
		
		//}catch (e){
		//	return null;	
		//}
	}
	// PARSE  Editor by prang
	this.getEditor = function(startNode) {
	
		try{		
			var temp = null;
			var elements = startNode.documentElement.getElementsByTagName("content");
			var objArr = new Array();
			for(i=0; i<elements.length; i++) {
				temp = new VDO();

				temp.vdoid = elements.item(i).getAttribute("id");
				//folder None
				//vdo
				temp.vdoname = this.getNodeValue(elements.item(i), 'subject'); 
				temp.vdodescription = this.getNodeValue(elements.item(i), 'description');
				temp.vdothumbnail_url = this.getNodeValue(elements.item(i), 'url');
				temp.vdocreation_date = this.getNodeValue(elements.item(i), 'post_datetime');
				//rating
				temp.vdotaggings = new Array();
				temp.vdouser = new User();
				objArr[i]= temp;

			}
			return objArr;
		
		}catch (e){
			return null;	
		}
	}

	
	// PARSE  vdo list by prang
	this.getVDOList = function(startNode) {
		try{	
			var tag = '';
			var temp = null;
			temp = new VDOList();
			//page detail
			var elements = startNode.documentElement.getElementsByTagName("page");
			for(i=0; i<elements.length; i++) {
				temp.current_page = elements.item(i).getAttribute("current_page");
				temp.page_count = parseInt(elements.item(i).getAttribute('page_count')); 
				temp.item_per_page =  parseInt(elements.item(i).getAttribute('item_per_page'));
			}
			
			//vdos
			var elements = startNode.documentElement.getElementsByTagName("vdos");
			for(i=0; i<elements.length; i++) {
				temp.vdo_count = parseInt(elements.item(i).getAttribute("count"));
				
			}
			temp.vdos = this.getVDO(startNode);
			var index_tags = new Array();
			//tag 
			var i =0;
			for (var j=0;j<temp.vdos.length; j++) {
				vdo = temp.vdos[j];
				for (var k=0;k<vdo.vdotaggings.length;k++) {
					tag = vdo.vdotaggings[k];
					check = true;

					for (var l=0;l<index_tags.length;l++){
						temptag = index_tags[l];
						if(temptag==tag){
							check = false;
						}
					}
					if(check== true && i<20){
						index_tags[i] = tag;
						i++;
					}
				}
			}
			temp.index_tags = index_tags;
			return temp;
		
		}catch (e){
			return null;	
		}
	}
	
	// PARSE  VDO by prang
	this.getVDO = function(startNode) {
	
		try{		
			var temp = null;
			var elements = startNode.documentElement.getElementsByTagName("vdo");
			var objArr = new Array();
			for(i=0; i<elements.length; i++) {
				temp = new VDO();
				add = 'true';
				objCount = objArr.length;
				temp.vdoid = elements.item(i).getAttribute("id");
				for(j=0; j<objCount; j++) {
					if(objArr[j].vdoid == temp.vdoid){
						add = 'false';
					}
				}
				if(add == 'true'){
					//folder
					var Nodefolder = elements.item(i).getElementsByTagName("folder").item(0);
					temp.folderid =Nodefolder.getAttribute('id');
					temp.foldername = this.getNodeValue(Nodefolder, 'name');
					temp.folderdisplay = this.getNodeValue(Nodefolder, 'display');
					temp.foldercomment = this.getNodeValue(Nodefolder, 'comment');
					temp.folderprivacy = this.getNodeValue(Nodefolder, 'privacy');
					//vdo
					temp.vdoname = elements.item(i).getElementsByTagName('name').item(1).firstChild.nodeValue ; 
					temp.vdodescription = this.getNodeValue(elements.item(i), 'description');
					temp.vdocategory = this.getNodeValue(elements.item(i), 'category');
					temp.vdoduration = this.getNodeValue(elements.item(i), 'duration');
					temp.vdooriginal_url = this.getNodeValue(elements.item(i), 'original_url');
					temp.vdothumbnail_url = this.getNodeValue(elements.item(i), 'thumbnail_url');
					temp.vdocreation_date = this.getNodeValue(elements.item(i), 'creation_date');
					temp.vdoplay = this.getNodeValue(elements.item(i), 'play');
					//rating
					var NodeRating	 	= elements.item(i).getElementsByTagName("rating").item(0);
					temp.vdoratingcount = parseInt(NodeRating.getAttribute("count"));
					temp.vdorating =  this.getNodeValue(elements.item(i),'rating');
					temp.vdotaggings = new Array();
					var NodeTags	 			=		elements.item(i).getElementsByTagName("tag")
					j=0;
					for(j=0; j<NodeTags.length; j++) {
						NodeTag =NodeTags[j];
						temp.vdotaggings[j]	 		=		NodeTag.getAttribute("value");
					}
					temp.vdoisEC = this.getNodeValue(elements.item(i), 'isEC');

					//user
					var NodeUser =		elements.item(i).getElementsByTagName("user").item(0);
					temp.vdouser = this.getUser(NodeUser,'true');
					objArr[objCount]= temp;
				}
			}
			return objArr;
		
		}catch (e){
			return null;	
		}
	}
	this.getBGEditorChoice = function(startNode) {
		var temp = null;
	//	var element = startNode.documentElement.getElementsByTagName("album").item(0);
			
		temp = new VDO();
		//folder
		temp.folderid ="";
		temp.foldername = "";
		temp.folderdisplay = ""
		temp.foldercomment = "";
		temp.folderprivacy = "";
		//vdoparent, node_name
		var vdoNode = startNode.documentElement.getElementsByTagName("story ").item(0);
		if(vdoNode!=null){
			temp.vdoid =vdoNode.getAttribute("id");
			temp.vdoname = this.getNodeValue(vdoNode, 'subject') ; 
			temp.vdodescription = this.getNodeValue(vdoNode, 'detail');
			temp.vdocategory = "";
			temp.vdoduration = "";
			temp.vdooriginal_url ="";
			temp.vdothumbnail_url = "";
			temp.vdocreation_date = this.getNodeValue(vdoNode, 'date');
			temp.vdoplay = 0;
			//rating
			temp.vdoratingcount = 0;
			temp.vdorating = "";
			//tag
			temp.vdotaggings = new Array();
			var NodeTags	 			=		vdoNode.getElementsByTagName("tag");
			j=0;
			for(j=0; j<NodeTags.length; j++) {
				NodeTag =NodeTags[j];
				temp.vdotaggings[j]	 		=		NodeTag.getAttribute("value");

			}
			temp.vdoisEC = "true";
		}
		//user

			var NodeUser = startNode.documentElement.getElementsByTagName("user").item(0);
			temp.vdouser=new User();
			temp.vdouser.id = NodeUser.getAttribute("id");
			temp.vdouser.cid =NodeUser.getAttribute("cid");
			temp.vdouser.old_username = "";
			temp.vdouser.username = this.getNodeValue(NodeUser, 'username');
			temp.vdouser.displayname =  this.getNodeValue(NodeUser, 'displayname');
			temp.vdouser.online = 'false';
	
		return temp;
	}

// PARSE  VDO Type by prang
	this.getVDOType = function(startNode) {
	
		try{		
			var temp = null;
			var elements = startNode.documentElement.getElementsByTagName("category");
			var objArr = new Array();
			for(var i=0; i<elements.length; i++) {
				temp = new Category();
				temp.id = elements.item(i).getAttribute("id");
				temp.name = this.getNodeValue(elements.item(i), 'name');
				objArr[i]= temp;
			}
			return objArr;
		
		}catch (e){
			return null;	
		}
	}
	
	// PARSE  NEW VDO
	this.getNewVDO = function(startNode) {
		var objHash = new Hashtable();
		try{
		
			var temp = null;
			var elements = startNode.documentElement.getElementsByTagName("vdo");
			
			for(i=0; i<elements.length; i++) {
				temp = new VDO();
				temp.id = elements.item(i).getAttribute("id");
				temp.fid = elements.item(i).getAttribute("album");
				
				temp.name = this.getNodeValue(elements.item(i), 'name'); 
				temp.description = this.getNodeValue(elements.item(i), 'description');
				temp.category = this.getNodeValue(elements.item(i), 'category');
				temp.duration = this.getNodeValue(elements.item(i), 'duration');
				temp.thumbnail_url = this.getNodeValue(elements.item(i), 'thumbnail_url');
				temp.original_url = this.getNodeValue(elements.item(i), 'original_url');
				temp.post_datetime = this.getNodeValue(elements.item(i), 'creation_date');
				temp.play = this.getNodeValue(elements.item(i), 'play');
				temp.isEC = this.getNodeValue(elements.item(i), 'isEC');

				temp.user = this.getUser(elements.item(i));
				
				objHash.put(temp.id, temp);
			}
			return objHash;
		
		}catch (e){
			return objHash;
		}
	}
		
	// PARSE  Folder Comment
	this.getFolderComments = function(startNode) {
		var temp = null;
		
		//var elements = startNode.getElementsByTagName("vdo").item(0).getElementsByTagName("comments").item(0);
		var elements = startNode.documentElement.getElementsByTagName("folder");
		
		var objHash = new Hashtable();
		temp = new Comments();
		temp.comments_id = 'comments';
		
		for(i=0; i<elements.length; i++) {
		
			oo = elements.item(i).getElementsByTagName("comments");
			
			if(oo.length>0){
			
				temp.count = oo.item(0).getAttribute("count");
				if(oo.item(0).getAttribute("count")!=null){
					
					o = oo.item(0).getElementsByTagName("comment");
					
					
					var obj = new Hashtable();
					
					for(i=0; i<o.length; i++) {
						tp = new Comment();
						tp.id = o.item(i).getAttribute("id");
						tp.user = this.getUser(o.item(i));
						tp.message = this.getNodeValue(o.item(i), 'message'); 
						tp.post_datetime = this.getNodeValue(o.item(i), 'post_datetime');
						tp.modify_datetime = this.getNodeValue(o.item(i), 'modify_datetime');
						obj.put(tp.id, tp);					
					}
					temp.comment = obj;
				
				}

			}
			
		}
		
		objHash.put(temp.comments_id, temp);
		return objHash;
		
		
	}
		
	// PARSE  Comment
	this.getComments = function(startNode) {
		var temp = null;
		
		//var elements = startNode.getElementsByTagName("vdo").item(0).getElementsByTagName("comments").item(0);
		var elements = startNode.documentElement.getElementsByTagName("vdo");
		
		var objHash = new Hashtable();
		temp = new Comments();
		temp.comments_id = 'comments';
		
		for(i=0; i<elements.length; i++) {
			oo = vdoNode.getElementsByTagName("comments");
				
			if(oo.length>0){
				temp.count = oo.item(i).getAttribute("count");
				
				o = oo.item(i).getElementsByTagName("comment");
				var obj = new Hashtable();
				for(i=0; i<o.length; i++) {
					tp = new Comment();
					tp.id = o.item(i).getAttribute("id");
					tp.user = this.getUser(o.item(i));
					tp.message = this.getNodeValue(o.item(i), 'message'); 
					tp.post_datetime = this.getNodeValue(o.item(i), 'post_datetime');
					tp.modify_datetime = this.getNodeValue(o.item(i), 'modify_datetime');
					obj.put(tp.id, tp);					
				}
				temp.comment = obj;
			}
		}
		
		objHash.put(temp.comments_id, temp);
		return objHash;
	}
	
	// PARSE  Rating
	this.getRating = function(startNode) {
		var temp = null;
		
		var elements = startNode.documentElement.getElementsByTagName("item");
		
		var objHash = new Hashtable();
		temp = new vdoRate();
		temp.id = 'rating';
		for(i=0; i<elements.length; i++) {
			temp.item_id = elements.item(i).getAttribute("id");
			temp.owner_id = this.getNodeValue(elements.item(i), 'owner_id'); 
			temp.type = this.getNodeValue(elements.item(i), 'type');
			temp.count = this.getNodeValue(elements.item(i), 'count');
			temp.value = this.getNodeValue(elements.item(i), 'value');
		}
		
		objHash.put(temp.id, temp);
		return objHash;
	}
	

	// PARSE  EditorChoice
	this.getEditorChoice = function(startNode) {
		var temp = null;
		var element = startNode.documentElement.getElementsByTagName("folder").item(0);
			
		temp = new VDO();
		//folder
		temp.folderid =element.getAttribute('id');
		temp.foldername = this.getNodeValue(element, 'name');
		temp.folderdisplay = ""
		temp.foldercomment = "";
		temp.folderprivacy = "";
		//vdoparent, node_name
		var vdoNode = startNode.documentElement.getElementsByTagName("vdo ").item(0);



		temp.vdoid =vdoNode.getAttribute("id");
		temp.vdoname = vdoNode.getElementsByTagName('name').item(0).firstChild.nodeValue ; 
		temp.vdodescription = this.getNodeValue(vdoNode, 'description');
		temp.vdocategory = this.getNodeValue(vdoNode, 'category');
		temp.vdoduration = this.getNodeValue(vdoNode, 'duration');
		temp.vdooriginal_url = this.getNodeValue(vdoNode, 'original_url');
		temp.vdothumbnail_url = this.getNodeValue(vdoNode, 'thumbnail_url');
		temp.vdocreation_date = this.getNodeValue(vdoNode, 'post_datetime');
		temp.vdoplay = this.getNodeValue(vdoNode, 'play');
		//rating
		var NodeRating	 	= startNode.documentElement.getElementsByTagName("rating").item(0);
		temp.vdoratingcount = parseInt(NodeRating.getAttribute("count"));
		temp.vdorating =  this.getNodeValue(vdoNode,'rating');
		//tag
		temp.vdotaggings = new Array();
		var NodeTags	 			=		vdoNode.getElementsByTagName("tag");
		j=0;
		for(j=0; j<NodeTags.length; j++) {
			NodeTag =NodeTags[j];
			temp.vdotaggings[j]	 		=		NodeTag.getAttribute("value");

		}
		temp.vdoisEC = "true";
		//user
		var NodeUser =startNode.documentElement.getElementsByTagName("user").item(0);
		temp.vdouser = this.getUser(NodeUser,'true');
		return temp;
	}

	// PARSE  vdo tag
	this.getVDOtag = function(startNode) {
		var temp = null;
		
		
		try{
			var elements = startNode.documentElement.getElementsByTagName("tag");
			var objHash = new Hashtable();
			
			for(i=0; i<elements.length; i++) {
				temp = new vdotag();
				temp.id = i;
				temp.value = elements.item(i).getAttribute("value");				
				objHash.put(temp.id, temp);
			}
			
			return objHash;
		}catch(e){
			var objHash = new Hashtable();
			return objHash;
		}
	}
this.getPHOTOListbyEditor = function(startNode,photos) {
		//try{	
			var tag = '';
			var temp = new PHOTOList();
			//page detail
			var elements = startNode.documentElement.getElementsByTagName("page");
			for(i=0; i<elements.length; i++) {
				temp.current_page = elements.item(i).getAttribute("current");
				temp.page_count = parseInt(elements.item(i).getAttribute('count')); 
				temp.item_per_page =  elements.item(i).getAttribute('length');
			}
			
			var photo =null;
			var contentNode = startNode.documentElement.getElementsByTagName("content");
			for (var j=0;j<contentNode.length; j++) {				
				photos[j] = this.getNodeValue(contentNode.item(j), 'original_id');
			}
			return temp;
		
		//}catch (e){
		//	return null;	
		//}
	}
// PARSE  EditorChoice
	this.getBlogEditorChoice = function(startNode) {
		var temp = null;
			
		temp = new BLOG();

		var blogNode = startNode.documentElement.getElementsByTagName("story ").item(0);
		temp.blogid =blogNode.getAttribute("id");
		temp.blogname = blogNode.getElementsByTagName('subject').item(0).firstChild.nodeValue ; 
		temp.blogdescription = this.getNodeValue(blogNode, 'detail');
		temp.blogpost_datetime = this.getNodeValue(blogNode, 'date');
		//tag
		temp.blogtaggings = new Array();
		var NodeTags	 			=		blogNode.getElementsByTagName("tag");
		j=0;
		for(j=0; j<NodeTags.length; j++) {
			NodeTag =NodeTags[j];
			temp.blogtaggings[j]	 		=		NodeTag.getAttribute("value");
		}
		temp.blogisEC = "true";
		//user
		var NodeUser =startNode.documentElement.getElementsByTagName("user").item(0);
		temp.bloguser = this.getUser(NodeUser,'false');
		return temp;
	}



	this.getPhotoEditorChoice = function(startNode) {
		var temp = null;
		var element = startNode.documentElement.getElementsByTagName("album").item(0);
			
		temp = new PHOTO();
		//folder
		temp.folderid =element.getAttribute('id');
		temp.foldername = this.getNodeValue(element, 'name');
		temp.folderdisplay = ""
		temp.foldercomment = "";
		temp.folderprivacy = "";
		//vdoparent, node_name
		var photoNode = startNode.documentElement.getElementsByTagName("picture").item(0);
		temp.photoid =photoNode.getAttribute("id");
		temp.photoname = photoNode.getElementsByTagName('name').item(0).firstChild.nodeValue ; 
		temp.photodescription = this.getNodeValue(photoNode, 'description');
		temp.photooriginal_url = this.getNodeValue(photoNode, 'original_url');
		temp.photothumbnail_url = this.getNodeValue(photoNode, 'thumbnail_url');
		temp.photocreation_date = this.getNodeValue(photoNode, 'post_datetime');
		//tag
		temp.phototaggings = new Array();
		var NodeTags	 			=		photoNode.getElementsByTagName("tag");
		j=0;
		for(j=0; j<NodeTags.length; j++) {
			NodeTag =NodeTags[j];
			temp.phototaggings[j]	 		=		NodeTag.getAttribute("value");
		}
		temp.photoisEC = "true";
		//user
		var NodeUser =startNode.documentElement.getElementsByTagName("user").item(0);
		temp.photouser = this.getUser(NodeUser,'false');
		return temp;
	}
	// PARSE  EditorChoice Rating
	this.getPhotoEditorChoiceRate = function(startNode) {
		var temp = null;
		temp = new PHOTO();
		var photoNode = startNode.documentElement.getElementsByTagName("item").item(0);
		temp.photoid =photoNode.getAttribute("id");
		temp.photoratingcount = parseInt(this.getNodeValue(photoNode,'count'));
		temp.photorating =  this.getNodeValue(photoNode,'value');
		return temp;
	}
// PARSE  EditorChoice
	this.getPhotoEditorChoiceOnline = function(startNode) {
		var temp = null;
		temp = new User();
		//user
		var NodeUser =startNode.documentElement.getElementsByTagName("user").item(0);
		temp = this.getUser(NodeUser,'true');

		return temp;
	}

	// PARSE  Editor by prang
	this.getPhotoEditor = function(startNode) {
	
		try{		
			var temp = null;
			var elements = startNode.documentElement.getElementsByTagName("content");
			var objArr = new Array();
			for(i=0; i<elements.length; i++) {
				temp = new VDO();

				temp.photoid = elements.item(i).getAttribute("id");
				//folder None
				//photo
				temp.photoname = this.getNodeValue(elements.item(i), 'subject'); 
				temp.photodescription = this.getNodeValue(elements.item(i), 'description');
				temp.photothumbnail_url = this.getNodeValue(elements.item(i), 'url');
				temp.photocreation_date = this.getNodeValue(elements.item(i), 'post_datetime');
				//rating
				temp.phototaggings = new Array();
				temp.photouser = new User();
				objArr[i]= temp;

			}
			return objArr;
		
		}catch (e){
			return null;	
		}
	}

	
		// PARSE  blog list by prang
	this.getBlogList = function(startNode) {
		//try{	
			var tag = '';
			var temp = null;
			temp = new BLOGList();
			//page detail
			var elements = startNode.documentElement.getElementsByTagName("page");
			for(i=0; i<elements.length; i++) {
				temp.current_page = parseInt(elements.item(i).getAttribute("current_page"));
				temp.page_count = parseInt(elements.item(i).getAttribute('page_count')); 
				temp.item_per_page =  parseInt(elements.item(i).getAttribute('item_per_page'));
			}
			//blogs
			var elements = startNode.documentElement.getElementsByTagName("stories");
			for(i=0; i<elements.length; i++) {
				temp.blog_count = parseInt(elements.item(i).getAttribute("count"));
				
			}
			temp.blogs = this.getBLOG(startNode);
			var index_tags = new Array();
			//tag 
			var i =0;
			for (var j=0;j<temp.blogs.length; j++) {
				blog = temp.blogs[j];
				for (var k=0;k<blog.blogtaggings.length;k++) {
					tag = blog.blogtaggings[k];
					check = true;

					for (var l=0;l<index_tags.length;l++){
						temptag = index_tags[l];
						if(temptag==tag){
							check = false;
						}
					}
					if(check== true && i<20){
						index_tags[i] = tag;
						i++;
					}
				}
			}
			temp.index_tags = index_tags;
			return temp;
		
		//}catch (e){
	///		return null;	
		//}
	}
	
	// PARSE  BLOG by prang
	this.getBLOG = function(startNode) {
	
		//try{		
			var temp = null;
			var elements = startNode.documentElement.getElementsByTagName("story");
			var objArr = new Array();
			for(i=0; i<elements.length; i++) {
				temp = new PHOTO();
				add = 'true';
				objCount = objArr.length;
				temp.blogid = elements.item(i).getAttribute("id");
				for(j=0; j<objCount; j++) {
					if(objArr[j].blogid == temp.blogid){
						add = 'false';
					}
				}
				if(add == 'true'){
					//blog
					temp.blogname = elements.item(i).getElementsByTagName('subject').item(0).firstChild.nodeValue ; 
					temp.blogdescription = this.getNodeValue(elements.item(i), 'detail');
					temp.blogpost_datetime = this.getNodeValue(elements.item(i), 'date');
					//rating
					var NodeRating	 	= elements.item(i).getElementsByTagName("rating").item(0);
					temp.blogratingcount = parseInt(NodeRating.getAttribute("count"));
					temp.blograting =  this.getNodeValue(elements.item(i),'rating');
					temp.blogtaggings = new Array();
					var NodeTags	 			=		elements.item(i).getElementsByTagName("tag")
					j=0;
					for(j=0; j<NodeTags.length; j++) {
						NodeTag =NodeTags[j];
						temp.blogtaggings[j]	 		=		NodeTag.getAttribute("value");
					}
					temp.blogisEC = this.getNodeValue(elements.item(i), 'isEC');

					//user
					var NodeUser =		elements.item(i).getElementsByTagName("user").item(0);
					temp.bloguser = this.getUser(NodeUser,'true');
					objArr[objCount]= temp;
				}
			}
			return objArr;
		
		//}catch (e){
		//	return null;	
		//}
	}
		// PARSE  photo list by prang
	this.getPhotoList = function(startNode) {
		//try{	
			var tag = '';
			var temp = null;
			temp = new PHOTOList();
			//page detail
			var elements = startNode.documentElement.getElementsByTagName("page");
			for(i=0; i<elements.length; i++) {
				temp.current_page = parseInt(elements.item(i).getAttribute("current_page"));
				temp.page_count = parseInt(elements.item(i).getAttribute('page_count')); 
				temp.item_per_page =  parseInt(elements.item(i).getAttribute('item_per_page'));
			}
			//photos
			var elements = startNode.documentElement.getElementsByTagName("pictures");
			for(i=0; i<elements.length; i++) {
				temp.photo_count = parseInt(elements.item(i).getAttribute("count"));
				
			}
			temp.photos = this.getPHOTO(startNode);
			var index_tags = new Array();
			//tag 
			var i =0;
			for (var j=0;j<temp.photos.length; j++) {
				photo = temp.photos[j];
				for (var k=0;k<photo.phototaggings.length;k++) {
					tag = photo.phototaggings[k];
					check = true;

					for (var l=0;l<index_tags.length;l++){
						temptag = index_tags[l];
						if(temptag==tag){
							check = false;
						}
					}
					if(check== true && i<20){
						index_tags[i] = tag;
						i++;
					}
				}
			}
			temp.index_tags = index_tags;
			return temp;
		
		//}catch (e){
	///		return null;	
		//}
	}
	
	// PARSE  PHOTO by prang
	this.getPHOTO = function(startNode) {
	
		//try{		
			var temp = null;
			var elements = startNode.documentElement.getElementsByTagName("picture");
			var objArr = new Array();
			for(i=0; i<elements.length; i++) {
				temp = new PHOTO();
				add = 'true';
				objCount = objArr.length;
				temp.photoid = elements.item(i).getAttribute("id");
				for(j=0; j<objCount; j++) {
					if(objArr[j].photoid == temp.photoid){
						add = 'false';
					}
				}
				if(add == 'true'){
					//folder
					var Nodefolder = elements.item(i).getElementsByTagName("album").item(0);
					temp.folderid =Nodefolder.getAttribute('id');
					temp.foldername = this.getNodeValue(Nodefolder, 'name');
					temp.folderdisplay = this.getNodeValue(Nodefolder, 'display');
					temp.foldercomment = this.getNodeValue(Nodefolder, 'comment');
					temp.folderprivacy = this.getNodeValue(Nodefolder, 'privacy');
					//photo
					temp.photoname = elements.item(i).getElementsByTagName('name').item(1).firstChild.nodeValue ; 
					temp.photodescription = this.getNodeValue(elements.item(i), 'description');
					temp.photooriginal_url = this.getNodeValue(elements.item(i), 'original_url');
					temp.photothumbnail_url = this.getNodeValue(elements.item(i), 'thumbnail_url');
					temp.photoscrap = this.getNodeValue(elements.item(i), 'scrap');
					temp.photoscrap_counter = this.getNodeValue(elements.item(i), 'scrap_counter');
					temp.photopost_datetime = this.getNodeValue(elements.item(i), 'post_datetime');
					//rating
					var NodeRating	 	= elements.item(i).getElementsByTagName("rating").item(0);
					temp.photoratingcount = parseInt(NodeRating.getAttribute("count"));
					temp.photorating =  this.getNodeValue(elements.item(i),'rating');
					temp.phototaggings = new Array();
					var NodeTags	 			=		elements.item(i).getElementsByTagName("tag")
					j=0;
					for(j=0; j<NodeTags.length; j++) {
						NodeTag =NodeTags[j];
						temp.phototaggings[j]	 		=		NodeTag.getAttribute("value");
					}
					temp.photoisEC = this.getNodeValue(elements.item(i), 'isEC');

					//user
					var NodeUser =		elements.item(i).getElementsByTagName("user").item(0);
					temp.photouser = this.getUser(NodeUser,'true');
					objArr[objCount]= temp;
				}
			}
			return objArr;
		
		//}catch (e){
		//	return null;	
		//}
	}
		this.getPhotoListByTag = function(startNode) {
		//try{	
			var tag = '';
			var temp = null;
			temp = new PHOTOList();
			//page detail
			var elements = startNode.documentElement.getElementsByTagName("page");
			for(i=0; i<elements.length; i++) {
				temp.current_page = parseInt(elements.item(i).getAttribute("current_page"));
				temp.page_count = parseInt(elements.item(i).getAttribute('page_count')); 
				temp.item_per_page =  parseInt(elements.item(i).getAttribute('item_per_page'));
			}
			//photos
			var elements = startNode.documentElement.getElementsByTagName("contents");
			for(i=0; i<elements.length; i++) {
				temp.photo_count = parseInt(elements.item(i).getAttribute("count"));
				
			}
			temp.photos = this.getPHOTOByTag(startNode);
			var index_tags = new Array();
			//tag 
			var i =0;
			for (var j=0;j<temp.photos.length; j++) {
				photo = temp.photos[j];
				for (var k=0;k<photo.phototaggings.length;k++) {
					tag = photo.phototaggings[k];
					check = true;

					for (var l=0;l<index_tags.length;l++){
						temptag = index_tags[l];
						if(temptag==tag){
							check = false;
						}
					}
					if(check== true && i<20){
						index_tags[i] = tag;
						i++;
					}
				}
			}
			temp.index_tags = index_tags;
			return temp;
		
		//}catch (e){
	///		return null;	
		//}
	}

	// PARSE  PHOTO by prang
	this.getPHOTOByTag = function(startNode) {
	
		//try{		
			var temp = null;
			var elements = startNode.documentElement.getElementsByTagName("content");
			var objArr = new Array();
			for(i=0; i<elements.length; i++) {
				temp = new PHOTO();
				add = 'true';
				objCount = objArr.length;
				temp.photoid = elements.item(i).getAttribute("id");
				for(j=0; j<objCount; j++) {
					if(objArr[j].photoid == temp.photoid){
						add = 'false';
					}
				}
				if(add == 'true'){
					//folder
					temp.folderid =this.getNodeValue(elements.item(i), 'forum_id');
					temp.foldername ="";
					temp.folderdisplay ="";
					temp.foldercomment = "";
					temp.folderprivacy = "";
					//photo
			
					temp.photoname = this.getNodeValue(elements.item(i),'subject');
					temp.photodescription = this.getNodeValue(elements.item(i),'detail');
					temp.photooriginal_url = this.getNodeValue(elements.item(i), 'url');
					temp.photothumbnail_url = this.getNodeValue(elements.item(i), 'url');
					temp.photoscrap = "";
					temp.photoscrap_counter = "";
					temp.photopost_datetime = this.getNodeValue(elements.item(i), 'date');
					//rating
					var NodeRating	 	= elements.item(i).getElementsByTagName("rating").item(0);
					temp.photoratingcount = parseInt(NodeRating.getAttribute("count"));
					temp.photorating =  this.getNodeValue(elements.item(i),'rating');
					temp.phototaggings = new Array();
					var NodeTags	 			=		elements.item(i).getElementsByTagName("tag")
					j=0;
					for(j=0; j<NodeTags.length; j++) {
						NodeTag =NodeTags[j];
						temp.phototaggings[j]	 		=		NodeTag.getAttribute("value");
					}
					temp.photoisEC = this.getNodeValue(elements.item(i), 'isEC');

					//user
					var NodeUser =		elements.item(i).getElementsByTagName("user").item(0);
					temp.photouser = this.getUser(NodeUser,'true');
					objArr[objCount]= temp;
				}
			}
			return objArr;
		
	}
}
