//functions which are called by a link (after ajax)
function addPossibility(message,answer) {	
    if(answer.success) {
        var dataSplit = answer.success.split("|");
		
        if(dataSplit) {
            var name = dataSplit[0];
            var id = dataSplit[1];
            var type = dataSplit[2];
			
            if($('#possibility').css("background","inherit").html().search("opties toegevoegd")!=-1) {
                $('#possibility').html("");
            }
            $('#possibility_intern_'+trim(id)).html("").remove();
            var element = 'possibility_'+trim(id);
			
            $('#possibility').append('<div id="'+element+'" class="tagLight"><a href="?action=removePossibility&type='+type+'&possibility='+name+'&id='+trim(id)+'" afterFunction="removePossibility" rel="ajax" noView="true">'+name+'<span class="removeCross">x</span></a></div>');
            checkLink($('#'+element+' a'));
			
        }
    }
}

function removePossibility(message,answer) {	
    if(answer.success) {
        var dataSplit = answer.success.split("|");
		
        if(dataSplit) {
            var name = dataSplit[0];
            var id = dataSplit[1];
            var type = dataSplit[2];
			
            $('#possibility_'+id).remove();
            $('#addPossibility').append('<div id="'+id+'" class="tagLight"><a style="color:#FFF;" href="?action=addPossibility&type='+type+'&possibility='+name+'&id='+id+'" afterFunction="addPossibility" rel="ajax">'+name+'</a></div>');
            checkLink($('#'+id));
        }
    }
}

function changeActivate(message,answer) {
    if(answer.success) {
        $('#activation').html("deactiveer");
        showSimpelMessage(message,answer.success,"green");
    } else {
        $('#activation').html("activeer");
        showSimpelMessage(message,answer.error,"red");
    }
    refreshAdvertisements();
}

function businessSaveAdvertisement(answer,message) {
    answer = formHandler(answer,message);
	
    if(answer.error) {
        $('#activation').html("activeer");
    }
	
    $("#businessAdvertisementTitle").html(answer.content);
    refreshAdvertisements();
}
								   
function checkProfileActive(isFirstTime) {
    ajaxGet(null,'action=checkProfileActive',function(answer) {
        answer = parseAnswer(answer);
		
        if(answer.error) {
            setTimeout("checkProfileActive();",5000);
        } else {
            if(answer.success=="1") {
                if($('#profile').length>0) {
                    ajaxGet($('#profile'),'view=profile');
                } else if($('#adverteren').length>0) {
                    ajaxGet($('#adverteren'),'view=advertise');
                } else if(globalHash=='mijnprofiel') {
                    ajaxGet($('#mutateProfile'),'view=mutateProfile');
                }
			
                makePopup('Je profiel is succesvol geactiveerd!','Profiel activatie');
            }
        }
    });
}

function removePhoto(message,answer) {	
    if(answer.success||answer.success=="0") {
        $('#hint').remove();
        $('#photo_'+answer.success).remove();
        showSimpelMessage('#photoMessage','geselecteerde foto is verwijderd','green');
    } else if(answer.error) {
        $('#hint').remove();
        showSimpelMessage('#photoMessage',answer.error,'red');
    }
	
    if($('#tempPhotoList').length>0) {
        if($('#tempPhotoList').html()=="") {
            $('#tempPhotoList').html("je hebt nog geen foto\'s toegevoegd");
        }
    } else {
        if($('#photoList').html()=="") {
            $('#photoList').html("je hebt nog geen foto\'s toegevoegd");
        }
    }
}

function removeHint() {
    $('#hint').remove();
}

function checkUpdate(answer,message) {
    answer = parseAnswer(answer);
	
    closePopup();
	
    if(answer.error) {
		
        if(answer.error=="445") {
            var error = "Je hebt helaas geen updates meer, je kunt hier nieuwe bestellen!";
            ajaxGet(null,'view=popup/buyUpdate&error='+escape(error),function(content) {
                makePopup(content,'Koop nieuwe updates',500);
            });
        } else if(answer.error=="212") {
            showMessage('Je profiel is nog niet geactiveerd! <a rel="popup" style="font-weight:bold;" href="?view=popup/help&help=profileActivation">Hoe doe ik dit?</a>','red',4,6000);
            showSimpelMessage(message,'Je profiel is nog niet geactiveerd!','red');
        } else if(answer.error=="587") {
            showSimpelMessage(message,'Je profiel is nog niet volledig ingevuld!','red');
        } else {
            showSimpelMessage(message,answer.error,'red');
        }
		
    } else {
        lowerUpdate();
        ajaxGet($('#adverteren'),'view=advertise',function() {
            showMessage(answer.success,'green',2,3000);
        });
    }
}

function deleteBusinessAdvertisement() {
    $('#mutateProfile').html("");
    refreshAdvertisements();
}

function refreshAdvertisements() {
    ajaxGet('#businessAdvertisements','action=showBusinessAdvertisements',function() {
        closePopup();
    });
}

function reloadAdvertise(message,answer) {
    ajaxGet($('#adverteren'),'view=advertise',function() {
        if(answer.success) {
            showSimpelMessage(message,answer.success,'green');
        } else {
            showSimpelMessage(message,answer.error,'red');
            showMessage(answer.error,'red',2,5000);
        }
    });
}

function formIdeal(answer,messageElement) {
    answer = parseAnswer(answer);
	
    if(answer.error) {
        showSimpelMessage(messageElement,answer.error,"red");
    } else if(answer.success) {
        showSimpelMessage(messageElement,answer.success,"green");
    }
	
    if(!answer.error) {
        window.open(answer.success,'ideal','width=1000,height=800');
        $('#popup').html('Ideal is gestart..');
    } else {
        ajaxGet($("#popup"),'view=popup/buyUpdate&payment=error');
    }
}

function finishIdeal() {
    loading("Betaling wordt verwerkt");
    $('#popup').html("Betaling wordt verwerkt, een ogenblik geduld..");
	
    ajaxGet(null,"action=checkPayment",function(answer) {
        answer = parseAnswer(answer);
				
        if(answer.success) {
            ajaxGet(null,'view=popup/buyUpdate&payment=success',function(content) {
                makePopup(content,'Koop nieuwe updates');
                ajaxGet($('#updateBox'),'view=update');
                ajaxGet($('#purpleArea'),'view=menu');
            });
        } else {
            ajaxGet(null,'view=popup/buyUpdate&payment=error',function(content) {
                closePopup(true);
                makePopup(content,'Koop nieuwe updates',500);
            });
        }
    });
}

function formLogin(answer,errorDiv) {
    answer = parseAnswer(answer);
	
    closePopup();
			
    if(answer.error) {
        showSimpelMessage(errorDiv,answer.error,"red");
    } else {
        ajaxGet($('#purpleArea'),'view=menu');
		
        if(globalHash=="registreren") {
            closePopup();
        } else if(globalHash=="adverteren") {
            ajaxGet($('#content'),'page=adverteren');
        } else if(globalHash=="mijnprofiel") {
            ajaxGet($('#content'),'page=mijnprofiel');
        }
		
        if($('#profile').length>0) {
            ajaxGet($('#profile'),'view=profile',function() {
                if(answer.success=="false") {
                    showMessage('je profiel is aangemaakt, maar je moet deze eerst nog activeren! <a rel="popup" style="font-weight:bold;" popupTitle="Hoe te activeren?" href="?view=popup/help&help=profileActivation">Hoe doe ik dit?</a>','green',2);
                    checkProfileActive();
					
                } else {
                    showMessage('je bent succes vol ingelogd!','green',2,3000);
                }
            });
        } else {
            pageload(globalHash);
        }
		
        if($('#mailForm').length>0) {
            ajaxGet($('#popup'),'view=popup/sendMessage');
        }
    }
}

function lowerUpdate() {
    ajaxGet($('#updateBox'),'view=update');

    update = parseInt($('#updateMenu').html());
		
    if(update>1) {
        $('#updateMenu').html(update-1);
    } else {
        $('#updateMenu').html('0');
        $('#updateMenu').css("color","red");
    }
}

function quickSearch() {
    if($('#quickSearch').val()) {
        location = "#zoeken/"+$('#quickSearch').val();
        if($.browser.version == "7.0") {
            pageload("#zoeken/"+$('#quickSearch').val())
        }
    } else {
        $('#quickSearch').val('waar wil je op zoeken?');
    }
}

function makeUpload() {
	
//    var photos = $('#photoList').html();
//    $('#photoList').html("");
//    $("body").prepend('<div id="tempPhotoList"><div id="tempError" class="error"></div>'+photos+'</div>');
//
//    var offset = $('#photoList').offset();
//    $('#tempPhotoList').css({
//        marginTop:(offset.top-11),
//        marginLeft:(offset.left-11)
//    });
//    $('#tempPhotoList .photo').lightBox();

    ajaxGet(null,'action=getProfileId',function(answer) {
        answer = parseAnswer(answer);
				
        if(answer.success) {
            $('#upload').uploadify({
                'uploader': 'system/upload/uploadify.swf',
                'script': 'upload.php',
                'folder': 'profile/',
                'cancelImg': 'system/upload/cancel.png',
                'multi' : 'true',
                'sizeLimit' : '2500000',
                'buttonText' : 'selecteer een foto',
                'scriptData' : {
                    'profileId' : answer.success,
                    'type' : $("#getType").html()
                },
                'buttonImg' : 'images/button.png',
                'width' : '74',
                'onComplete' : function(ev,queueID,fileObj,photoName) {
                    if(photoName) {
                        photoName = trim(photoName);

                        ajaxGet(null,'action=addPhoto&'+photoName,function(answer) {
                            answer = parseAnswer(answer);

                            if(photoName.search('&')!=-1) {
                                photoName = photoName.split("&");
                                photoName = photoName[0];
                                photoName = photoName.split("=");
                                photoName = photoName[1];
                            }

                            if(answer.success) {
                                var id = '';
                                var type = '';

                                if(answer.success.search('|')!=-1) {
                                    var data = answer.success.split('|');
                                    id = data[0];
                                    type = data[1];
                                } else {
                                    id = trim(answer.success);
                                }

//                                if($('#tempPhotoList').html().search(/je hebt nog/)!=-1) {
//                                    $('#tempPhotoList').html("");
//                                }

                                $('#photoList').prepend('<div id="photo_'+id+'" class="photoThumb">\n\
                                                                    <a id="photoLink_'+id+'" href="?view=hint/removePhoto&type='+type+'&photo='+photoName+'" rel="hint" class="photoDelete">x</a>\n\
                                                                    <a class="photo" href="foto/'+photoName+'"><img src="foto/'+photoName+'" alt="" /></a>\n\
                                                             </div>');

                                $('#photo_'+id+' .photo').lightBox();
                                checkLink($('#photoLink_'+id));

                            } else if(answer.error) {
                                showSimpelMessage('tempError',answer.error);
                            }
                        });
                    }
                },
                'height': '22'                
            });
        }
    });
}

function closeUpload() {
    var photos = $('#tempPhotoList').html();
    //$('#upload').uploadify
    $('#tempPhotoList').remove();
    $('#photoList').html(photos);
    checkLinks($('#photoList'));
    $('#photoList .photo').lightBox();
}

function lockProfileView() {
    $('#loginForm').attr("id","loginFormBuffer");
    $('#registerForm').attr("id","registerFormBuffer");
}

function unLockProfileView() {
    $('#loginFormBuffer').attr("id","loginForm");
    $('#registerFormBuffer').attr("id","registerForm");
}

function checkReady(answer,messageElement) {
    var answer = parseAnswer(answer,messageElement);
	
    closePopup();
	
    if(answer.success&&answer.success.search(/865/)!=-1) {
        answer.success = answer.success.replace(/865/,'');
        lowerUpdate();
    //showSimpelMessage(messageElement,answer.success,'green');
    }
	
    if(!answer.error) {
        ajaxGet(null,'action=checkReady',function(answer) {
            answer = parseAnswer(answer);
			
            if(answer.success) {
                removeMessage(1,function() {
                    showMessage(answer.success,'green',1);
                });
                removeMessage(3);
	
            } else if(answer.error) {
                removeMessage(1);
                removeMessage(3,function() {
                    showMessage(answer.error,'red',3);
                });
            }
        });
    } else {
        showSimpelMessage(messageElement,answer.error,"red");
    }
}

function removeMessage(identifier,execute) {
    if($("#message_"+identifier).length>0) {
        $('#message_'+identifier).hide("blind",null,500,function() {
            //$('#message_'+identifier).fadeTo(200,0.0,function() {
            $('#message_'+identifier).animate("height","0px");
            $('#message_'+identifier).html("");
            $('#message_'+identifier).remove();
            if(execute) {
                execute();
            }
        //});
        });
    }
    if(execute) {
        execute();
    }
}

function showMessage(message,type,identifier,time,animate) {
	
    if(!$('#message_'+identifier).length) {
        var image = "";
        var style = "";
        var id = "";
		
        if(type=="red") {
            image = '<img src="images/icons/error.png" style="float:left;margin-top:-2px;margin-right:6px;" />';
            style = 'errorMessage';
        } else {
            image = '<img src="images/icons/flag_orange.png" style="float:left;margin-top:-1px;margin-right:2px;" />';
            style = 'message';
        }
		
        if(identifier) {
            id = 'id="message_'+identifier+'"';
        }
		
        //	$($('#messageHolder')).append('<div '+id+' class="'+style+'"></div>');
        //	$('#message_'+identifier).fadeTo(300,1.0,function() {
        //		$('#message_'+identifier).animate({height:"16px",padding:"6px"},function() {
        //			$('#message_'+identifier).html(image+message);
        //		})
        //	});
        $($('#messageHolder')).append('<div '+id+' class="'+style+'">'+image+message+'</div>');
        $('#message_'+identifier).fadeTo(300,1.0);
		
        if(time) {
            setTimeout("removeMessage('"+identifier+"');",time);
        }
		
        checkLink($('#message_'+identifier+' a'));
    }
}

function parseAnswer(answer) {
    answer = ""+answer;
    var response = {
        "content" : null,
        "success" : null,
        "error" : null
    };

    if(answer) {
        response.error = parseError(answer);
        response.success = parseSuccess(answer);
		
        answer = answer.replace(/(<error>.*<\/error>)/g,'');
        answer = answer.replace(/(<success>.*<\/success>)/g,'');
		
        response.content = answer;
    }
    return response;
}

//Parse functions for the answers from the servers
function parseError(answer) {
    if(answer) {
        if(answer.search(/error/)!=-1) {
            var error = answer.match(/<error>.*<\/error>/);
            error = ""+error;
            error = error.replace(/(<error>|<\/error>)/g,'');
			
            if(error == "null") {
                error = null;
            }
            return error;
        }
    }
	
    return null;
}

function parseSuccess(answer) {
    if(answer) {
        if(answer.search(/success/)!=-1) {
            var success  = answer.match(/<success>.*<\/success>/);
            success = ""+success;
            success = success.replace(/(<success>|<\/success>)/g,'');
		
            if(success == "null") {
                success = null;
            }
			
            return success;
        }
    }
	
    return null;
}

function formHandler(answer,messageElement,targetElement) {
    answer = parseAnswer(answer);

    if(answer.error) {
        showSimpelMessage(messageElement,answer.error,"red");
    } else if(answer.success) {
        showSimpelMessage(messageElement,answer.success,"green");
    }
	
    if(targetElement&&!answer.error) {
        $(targetElement).html(answer.content);
    }
	
    return answer;
}

function showSimpelMessage(element,message,color) {
    $(element).html(message).css("color",color);
    setTimeout("unsetSimpelMessage('"+element+"');",3000);
}

function unsetSimpelMessage(element) {
    $(element).html("");
}


function trim(value) {
    value = value.replace(/^\s+/,'');
    value = value.replace(/\s+$/,'');
    return value;
}

