function returnWindowHeight() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  
  return myHeight - (myHeight * 0.2);
}

//constants
//settings
var Const_Ajax_NumberPagesShown = 5;
var Const_Ajax_URL = "ajax_request.php";
var Const_Ajax_GalleriesByPage = 15;
var Const_Ajax_PhotosGalleryByPage = 8;

var Const_Ajax_NumberPagesShownForGallery = 4;

//Constants request code
var Const_Ajax_GetGalleriesPage_Request = 1;  
var Const_Ajax_GetTotalPages_Request = 2;
var Const_Ajax_GetTotalGalleryPages_Request = 3;
var Const_Ajax_GetGalleryPhotoPages_Request = 4;
var Const_Ajax_ValidateUser_Request = 5;
var Const_Ajax_ValidateCAPTCHA = 7;

function ajax_GetGalleryPhotos(page,gid,isSubscribed)
{	
		//get total num pages
	new Ajax.Request(Const_Ajax_URL + "?querytype=" + Const_Ajax_GetTotalGalleryPages_Request + "&galleryxpage=" + Const_Ajax_PhotosGalleryByPage + "&gid=" + gid ,{
					 methog: 'get', onSuccess: 
					 function(transport) 
					 { 
					 	var total = transport.responseText;
	
						var totalnum = parseInt(total);
						
						var pagesOptions = "";
						
						if(totalnum > Const_Ajax_NumberPagesShownForGallery)
						{
							previouspage = page - 1;
							newpage = page + 1;
							
							pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleryPhotos(1"+"," +gid.toString()+"," +isSubscribed.toString()+"); return false;\"  > <<</a>";

							if(previouspage > 0)
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleryPhotos(" +previouspage.toString()+"," +gid.toString()+"," +isSubscribed.toString() +"); return false;\"  > < </a>";
							removed = 0;
							
							startindex = Math.floor(Const_Ajax_NumberPagesShownForGallery / 2 );

							if(page == totalnum)
								startindex  = Const_Ajax_NumberPagesShown;

	
							var tmptmp = Const_Ajax_NumberPagesShownForGallery % 2;
							if(tmptmp == 0)
								startindex--;
							
							if(page != totalnum && page + startindex >= totalnum )
							{
								startindex +=  (totalnum - page);								
							}


							while((startindex > 0) && (page - startindex < 1))
							{
								removed++;
								startindex--;								
							}
							for(i=startindex; i >= 1 ; i--)
							{
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleryPhotos(" +(page - i).toString()+"," +gid.toString()+"," +isSubscribed.toString()+"); return false;\"  >" + (page - i).toString() +"</a>";
							}
					
							//selected page centered
							pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleryPhotos(" +page.toString()+"," +gid.toString()+"," +isSubscribed.toString()+"); return false;\"  >" + page.toString() +"</a>";

							startindex = Math.floor(Const_Ajax_NumberPagesShownForGallery / 2 ) + removed;
							
							while((startindex > 0) && (page + startindex > totalnum))
							{
								removed++;
								startindex--;								
							}
							for(i=1; i <= startindex; i++)
							{
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleryPhotos(" + (page + i).toString()+"," +gid.toString()+"," +isSubscribed.toString()+"); return false;\"  >" + (page + i).toString() +"</a>";
							}

							if(newpage < totalnum)
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleryPhotos(" +newpage.toString()+"," +gid.toString()+"," +isSubscribed.toString()+"); return false;\"  > > </a>";							
								
							pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleryPhotos("+totalnum.toString()+"," +gid.toString()+"," +isSubscribed.toString()+"); return false;\"  > >> </a>";							
						}
						else // display just the pages available
						{
							for(i=1 ; i <= totalnum ; i++)
							{
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleryPhotos(" +i.toString()+"," +gid.toString()+"," +isSubscribed.toString()+"); return false;\"  >" + i.toString() +"</a>";
							}
						}						
						document.getElementById("generatepages").innerHTML = pagesOptions + "<br><br>";
					 }
	});	
	
	var end = (page * Const_Ajax_PhotosGalleryByPage);
	var start = end - Const_Ajax_PhotosGalleryByPage;
	
	wheight = returnWindowHeight();
	var galleryThumbNailCode = "";

	new Ajax.Request(Const_Ajax_URL + "?querytype=" + Const_Ajax_GetGalleryPhotoPages_Request + "&gid=" + gid + "&from=" + start + "&to=" + end,{
					 methog: 'get', onSuccess: 
					 function(transport) 
					 { 
					 
					 	var prevallphotosdatalinks = "";
						var afterallphotosdatalinks = "";
						var seletedphotosdatalinks = "";

					 	var ids = transport.responseText;						
						
						
						var alldata = ids.split("~");																	
				

						// selected page items						
						var idsarray = alldata[0].split("|");
						
						var idlist = new Array();
						
						var firstitem = -1;

						for(i = 0; i <= Const_Ajax_GalleriesByPage; i++)
						{					
							if(i >= (idsarray.length - 1 ))
							{	
								var xtmp = document.getElementById("gallery" + (i+1).toString());
								if(xtmp != undefined && xtmp != null)
									xtmp.innerHTML = "";
							}
							else
							{
								if(idsarray[i] != "")
								{
									var gallery = idsarray[i].split("^");									
									
									
									
									if(gallery.length == 3)
									{

										if(isSubscribed != -1 || gallery[2] == 1)
										{
											galleryThumbNailCode = "<div class=\"thumbsPh\"><div class=\"bigImage\"><a href=\"thumbnailsgenerator.php?type=5&wheight="+wheight.toString()+"&pid={PID}\" rel=\"lightbox[bellapod]\" id=\"{PID}\" title=\"{NAME}\"><img  src=\"thumbnailsgenerator.php?type=2&pid={PID}\" border=0/></a></div></div>";
											
											idlist.push(gallery[0]);

										}
										else
										{
											galleryThumbNailCode = "<div class=\"thumbsPh\"><div class=\"bigImage\"><a href=\"subscribe.php\" title=\"{NAME}\" id=\"{PID}\"><img  src=\"thumbnailsgenerator.php?type=2&pid={PID}\" border=0/></a></div></div>";											
											idlist.push(gallery[0]);
										}
										
										if(i == 0)
											firstitem = gallery[0];
	
										
										/*var tmp = galleryThumbNailCode.replace(/{PID}/g,gallery[0]);
										
										
										tmp = tmp.replace("{NAME}",decodeURIComponent(unescape(gallery[1]).replace(/\+/g, '%20')));								
										//tmp = tmp.replace("{ITEMID}","gallery" + (i+1).toString());								
										
										var xtmp = document.getElementById("gallery" + (i+1).toString());
										if(xtmp != undefined && xtmp != null)
											xtmp.innerHTML = tmp*/
									}
								}
							}
						}
						
					
						if(alldata.length == 2)
						{
							
							// add all pages photos lightbox link
							var idsarray = alldata[1].split("|");
							
							var currentcount = 1;
							
							var isprev = true;
							
							for(i = 0; i < idsarray.length ; i++)
							{
									var gallery = idsarray[i].split("^");
									
									
									
									if(gallery.length == 3)
									{										
										galleryid = -1;
										if(isSubscribed != -1 || gallery[2] == 1)
										{
											
												galleryThumbNailCodeALLPHOTOS = "<a href=\"thumbnailsgenerator.php?type=5&wheight="+wheight.toString()+"&pid={PID}\" rel=\"lightbox[bellapod]\" title=\"{NAME}\" id=\"{PID}\"></a>";
																			
												galleryThumbNailCode = "<div class=\"thumbsPh\"><div class=\"bigImage\"><a href=\"thumbnailsgenerator.php?type=5&wheight="+wheight.toString()+"&pid={PID}\" rel=\"lightbox[bellapod]\" title=\"{NAME}\" id=\"{PID}\" ><img  src=\"thumbnailsgenerator.php?type=2&pid={PID}\" border=0/></a></div></div>";
											
											galleryid = gallery[0];


										}
										else
										{				
											
												galleryThumbNailCodeALLPHOTOS = "<a href=\"thumbnailsgenerator.php?type=11&wheight="+wheight.toString()	 +"\" rel=\"lightbox[bellapod]\" title=\"{NAME}\" id=\"{PID}\" onclick=\"window.location = \"subscribe.php\"></a>";	
											
												galleryThumbNailCode = "<div class=\"thumbsPh\"><div class=\"bigImage\"><a href=\"subscribe.php\" title=\"{NAME}\" id=\"{PID}\"><img  src=\"thumbnailsgenerator.php?type=2&pid={PID}\" border=0/></a></div></div>";											

										}
										
										if(idlist.indexOf(gallery[0]) != -1)
										{
											isprev = false;
											var tmp = galleryThumbNailCode.replace(/{PID}/g,gallery[0]);
											
											
											tmp = tmp.replace("{NAME}",decodeURIComponent(unescape(gallery[1]).replace(/\+/g, '%20')));								
											//tmp = tmp.replace("{ITEMID}","gallery" + (i+1).toString());								
											
											seletedphotosdatalinks+= tmp;
											
											var xtmp = document.getElementById("gallery" + (currentcount).toString());
											if(xtmp != undefined && xtmp != null)
												xtmp.innerHTML = tmp
												
											currentcount++;	
											
											if(!(isSubscribed != -1 || gallery[2] == 1))
											{

												var tmp = galleryThumbNailCodeALLPHOTOS.replace(/{PID}/g,galleryid);
												
												if(isprev)
												{
													prevallphotosdatalinks += tmp;
												}
												else
												{
													afterallphotosdatalinks += tmp;
												}

											}
										}
										else
										{
											var tmp = galleryThumbNailCodeALLPHOTOS.replace(/{PID}/g,galleryid);
											
											if(isprev)
											{
												prevallphotosdatalinks += tmp;
											}
											else
											{
												afterallphotosdatalinks += tmp;
											}
										}
										
										
									}
							}
							
							
							

							var xtmp = document.getElementById("prevallphotoslinks");							
							xtmp.innerHTML = prevallphotosdatalinks;							

							var xtmp = document.getElementById("afterallphotoslinks");							
							xtmp.innerHTML = afterallphotosdatalinks;							
							
						}
												
					 }
					 });
}

// Functions to get data 
function ajax_GetGalleries(page,likename)
{
	//get total num pages
	new Ajax.Request(Const_Ajax_URL + "?querytype=" + Const_Ajax_GetTotalPages_Request + "&likename=" + likename + "&galleryxpage=" + Const_Ajax_GalleriesByPage ,{
					 methog: 'get', onSuccess: 
					 function(transport) 
					 { 
					 	var total = transport.responseText;
						
						var totalnum = parseInt(total);
						
						var pagesOptions = "";
						
						if(totalnum > Const_Ajax_NumberPagesShown)
						{
							previouspage = page - 1;
							newpage = page + 1;
							
							pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleries(1,'" + likename + "'); return false;\"  > <<</a>";

							if(previouspage > 0)
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleries(" +previouspage.toString()+  ",'" + likename + "'); return false;\"  > < </a>";
							removed = 0;
							startindex = Math.floor(Const_Ajax_NumberPagesShown / 2 );
							
							if(page == totalnum)
								startindex  = Const_Ajax_NumberPagesShown;

	
							var tmptmp = Const_Ajax_NumberPagesShownForGallery % 2;
							if(tmptmp == 0)
								startindex--;
							
							if(page != totalnum && page + startindex >= totalnum )
							{
								startindex +=  (totalnum - page);								
							}

							
							while((startindex > 0) && (page - startindex < 1))
							{
								removed++;
								startindex--;								
							}
							for(i=startindex; i >= 1 ; i--)
							{
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleries(" +(page - i).toString()+",'" + likename + "'); return false;\"  >" + (page - i).toString() +"</a>";
							}
					
							//selected page centered
							pagesOptions += "<a href=\"#\" class=\"currentpage\" onclick=\"ajax_GetGalleries(" +page.toString()+",'" + likename + "'); return false;\"  >" + page.toString() +"</a>";

							startindex = Math.floor(Const_Ajax_NumberPagesShown / 2 ) + removed;
							
							while((startindex > 0) && (page + startindex > totalnum))
							{
								removed++;
								startindex--;								
							}
							for(i=1; i <= startindex; i++)
							{
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleries(" + (page + i).toString()+",'" + likename + "'); return false;\"  >" + (page + i).toString() +"</a>";
							}
							

							if(page < totalnum)
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleries(" +newpage.toString()+  ",'" + likename + "'); return false;\"  > > </a>";							
								
							pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleries("+totalnum.toString()+",'" + likename + "'); return false;\"  > >> </a>";							
							
						}
						else // display just the pages available
						{
							for(i=1 ; i <= totalnum ; i++)
							{
								pagesOptions += "<a href=\"#\" onclick=\"ajax_GetGalleries(" +i.toString()+",'" + likename + "'); return false;\"  >" + i.toString() +"</a>";
							}
						}						
						document.getElementById("generatepages").innerHTML = pagesOptions;
					 }
	});	
	
	var end = (page * Const_Ajax_GalleriesByPage);
	var start = end - Const_Ajax_GalleriesByPage;

//	var galleryThumbNailCode = "<a href=\"/galleries/{GID}/{GNAME}/featured.php?gid={GID}\" onMouseOver=\"ShowPreview('thumbnailsgenerator.php?type=4&gid={GID}')\" ><div class=\"thumbsVideo\"><div class=\"bigImageGallery\"><img onClick=\"location.replace('featured.php?gid={GID}')\" src=\"thumbnailsgenerator.php?type=1&gid={GID}\" border=\"0\" /></div><div class=\"name\"> {GNAME}</div></div></a>";

	var galleryThumbNailCode = "<a href=\"/galleries/{GID}/{GNAME}\" onMouseOver=\"ShowPreview('thumbnailsgenerator.php?type=4&gid={GID}')\" ><div class=\"thumbsVideo\"><div class=\"bigImageGallery\"><img onClick=\"location.replace('/galleries/{GID}/{GNAME}')\" src=\"thumbnailsgenerator.php?type=1&gid={GID}\" border=\"0\" /></div><div class=\"name\"> {GNAME}</div></div></a>";
	new Ajax.Request(Const_Ajax_URL + "?querytype=" + Const_Ajax_GetGalleriesPage_Request + "&likename=" + likename + "&from=" + start + "&to=" + end,{
					 methog: 'get', onSuccess: 
					 function(transport) 
					 { 

					 	var ids = transport.responseText;
						
						var idsarray = ids.split("|");
						
						var firstitem = -1;

						for(i = 0; i <= Const_Ajax_GalleriesByPage; i++)
						{					
							if(i >= (idsarray.length - 1 ))
							{	
								var xtmp = document.getElementById("gallery" + (i+1).toString());
								if(xtmp != undefined && xtmp != null)
									xtmp.innerHTML = "";
								
							}
							else
							{
								if(idsarray[i] != "")
								{									

									var gallery = idsarray[i].split("^");									
									
									if(gallery.length == 2)
									{
										if(i == 0)
											firstitem = gallery[0];
	
										var tmp = galleryThumbNailCode.replace(/{GID}/g,gallery[0]);
										
										tmp = tmp.replace("{GNAME}",decodeURIComponent(unescape(gallery[1]).replace(/\+/g, '%20')));								
										tmp = tmp.replace("{GNAME}",decodeURIComponent(unescape(gallery[1]).replace(/\+/g, '%20')));								
										tmp = tmp.replace("{GNAME}",decodeURIComponent(unescape(gallery[1]).replace(/\+/g, '%20')));								
										tmp = tmp.replace("{ITEMID}","gallery" + (i+1).toString());								
										
										var xtmp = document.getElementById("gallery" + (i+1).toString());
										if(xtmp != undefined && xtmp != null)
											xtmp.innerHTML = tmp
									}
								}
							}
						}
						
						var obj = document.getElementById("previewimage");
						if(obj != null && firstitem != -1)
						{
							obj.style.marginLeft = '35px';
							obj.innerHTML = "<img src=\" thumbnailsgenerator.php?type=4&gid=" + firstitem.toString() + " \"  width=213 height=320 border=0>";
						}
					 }
					 });
}

function ajax_VerifyCaptcha()
{	
	var form = document.getElementById("captchaformtyped");
	var captcha = form.tmptxt.value;	

		//get total num pages
		
	new Ajax.Request(Const_Ajax_URL + "?querytype=" + Const_Ajax_ValidateCAPTCHA + "&captchatyped=" + captcha,{
					 method: 'get',  
					 onFailure: function(transport){                    var response = transport.responseText || "no response text";                    alert("FAIL! \n\n" + response);                
					 }
					 ,onSuccess: 
					 function(transport) 
					 { 
					 	var data = transport.responseText;

						if(data == "1")
						{
						var form = document.getElementById("formlogin");						
						form.captcha.value = captcha;
						form.submit();
						}
						else
						{
							  var cdiv = document.getElementById("captchamessage");
							  cdiv.innerHTML = "No son iguales";
						}
					 }
				}
		)
	
	return false;
}
